Compare commits
2 Commits
b04b8c2fcf
...
4d26053a70
Author | SHA1 | Date | |
---|---|---|---|
4d26053a70 | |||
2b08a61fed |
@ -10,8 +10,8 @@ pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
|
|||||||
pkg_check_modules(CAIRO REQUIRED cairo)
|
pkg_check_modules(CAIRO REQUIRED cairo)
|
||||||
|
|
||||||
find_package(OpenCL REQUIRED)
|
find_package(OpenCL REQUIRED)
|
||||||
|
find_package(OpenGL REQUIRED)
|
||||||
|
find_package(GLUT REQUIRED)
|
||||||
|
|
||||||
add_subdirectory(glade)
|
add_subdirectory(glade)
|
||||||
|
|
||||||
@ -34,3 +34,4 @@ message(STATUS "OpenCL found: ${OPENCL_FOUND}")
|
|||||||
message(STATUS "OpenCL includes: ${OPENCL_INCLUDE_DIRS}")
|
message(STATUS "OpenCL includes: ${OPENCL_INCLUDE_DIRS}")
|
||||||
message(STATUS "OpenCL CXX includes: ${OPENCL_HAS_CPP_BINDINGS}")
|
message(STATUS "OpenCL CXX includes: ${OPENCL_HAS_CPP_BINDINGS}")
|
||||||
message(STATUS "OpenCL libraries: ${OPENCL_LIBRARIES}")
|
message(STATUS "OpenCL libraries: ${OPENCL_LIBRARIES}")
|
||||||
|
message(STATUS "OpenGL libraries: ${OPENGL_gl_LIBRARIES}")
|
||||||
|
25
src/main.c
25
src/main.c
@ -48,13 +48,13 @@ static gboolean on_main_window_close(GtkWidget *window, gpointer data)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void check_error(cl_int error)
|
#define check_error(error) \
|
||||||
{
|
do { \
|
||||||
if (error != CL_SUCCESS) {
|
if (error != CL_SUCCESS) { \
|
||||||
printf("OpenCL call failed with error %d\n", (int)error);
|
printf("OpenCL call failed with error %d. %s:%d\n", (int)error, __func__, __LINE__); \
|
||||||
exit(error);
|
exit(error); \
|
||||||
}
|
} } while(0)
|
||||||
}
|
|
||||||
|
|
||||||
void load_kernel_from_file(char *file, char **src)
|
void load_kernel_from_file(char *file, char **src)
|
||||||
{
|
{
|
||||||
@ -189,6 +189,8 @@ static int calculate_mandelbrot(struct canvas_buffer *buff)
|
|||||||
|
|
||||||
clEnqueueReadBuffer(queue, dat_buff, CL_TRUE, 0, data_size*3, buff->mandelbrot_buffer, 0, NULL, NULL);
|
clEnqueueReadBuffer(queue, dat_buff, CL_TRUE, 0, data_size*3, buff->mandelbrot_buffer, 0, NULL, NULL);
|
||||||
|
|
||||||
|
printf("Calculation finished!\n");
|
||||||
|
|
||||||
ret = clFlush(queue);
|
ret = clFlush(queue);
|
||||||
ret = clFinish(queue);
|
ret = clFinish(queue);
|
||||||
ret = clReleaseKernel(kernel);
|
ret = clReleaseKernel(kernel);
|
||||||
@ -353,7 +355,14 @@ int main(int argc, char **argv)
|
|||||||
mandelbrot_buff.height = 3000;
|
mandelbrot_buff.height = 3000;
|
||||||
mandelbrot_buff.iterations = 200;
|
mandelbrot_buff.iterations = 200;
|
||||||
mandelbrot_buff.mandelbrot_buffer = NULL;
|
mandelbrot_buff.mandelbrot_buffer = NULL;
|
||||||
calculate_mandelbrot(&mandelbrot_buff);
|
//calculate_mandelbrot(&mandelbrot_buff);
|
||||||
|
|
||||||
|
gtk_gl_area_make_current(glarea);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
GError *error = NULL;
|
||||||
|
g_signal_connect(glarea, "render", G_CALLBACK(render), NULL);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user