static void initialize(GLFWwindow* window) { // Hook up GLFW events glfwSetMouseButtonCallback(window, onMouseDown); glfwSetScrollCallback(window, onMouseScroll); glfwSetCursorPosCallback(window, onMouseMove); glfwSetKeyCallback(window, onKeyDown); glfwSetCharCallback(window, onCharCallback); glfwSetFramebufferSizeCallback(window, onFramebufferSizeChanged); // Set up framebuffer (and projection matrix) int width, height; glfwGetWindowSize(window, &width, &height); onFramebufferSizeChanged(window, width, height); // Initialize AntTweakBar TwInit(TW_OPENGL, NULL); setupAntTweakBar(); // Init ffmpeg screen recording ffmpegSetScreenSize(SCREEN_WIDTH, SCREEN_HEIGHT); ffmpegSetOutput("output.mp4"); ffmpegOpen(); s_grid = new CoordGrid(); g_ball = new RigidSphere(); //N : 7366 M : 43776 s_model = new Model("resource/models/mesh1/head.dae"); //N : 43922 M : 262656 //s_model = new Model("resource/models/mesh1/head2.dae"); //N : 175402 M : 1050624 //s_model = new Model("resource/models/mesh1/head3.dae"); //N : 1902 M : 11094 //s_model = new Model("resource/models/mesh2/head.dae"); //N : 7514 M : 44412 //s_model = new Model("resource/models/mesh2/head2.dae"); //N : 29838 M : 177648 //s_model = new Model("resource/models/mesh2/head3.dae"); // Some rendering settings glEnable(GL_DEPTH_TEST); glPolygonOffset(1.0, 2); }
void setup() { setupAntTweakBar(); checkCudaErrors(cuInit(0)); if (sketchArgc != 2) { printf("Usage: %s <cuda_toy.cu>\n", sketchArgv[0]); quit(); return; } if (RMT_ERROR_NONE != rmt_CreateGlobalInstance(&rmt)) { //return -1; } int r = uv_fs_event_init(uv_default_loop(), &fs_event); r = uv_fs_event_start(&fs_event, on_fs_event_cb, sketchArgv[1], 0); char title[256]; sprintf(title, "CUDA ShaderToy - %s", sketchArgv[1]); glfwSetWindowTitle(window, title); setupModuleResource(sketchArgv[1]); setupSizeResource(); rmtCUDABind bind; bind.context = cuContext; bind.CtxSetCurrent = &cuCtxSetCurrent; bind.CtxGetCurrent = &cuCtxGetCurrent; bind.EventCreate = &cuEventCreate; bind.EventDestroy = &cuEventDestroy; bind.EventRecord = &cuEventRecord; bind.EventQuery = &cuEventQuery; bind.EventElapsedTime = &cuEventElapsedTime; rmt_BindCUDA(&bind); rmt_BindOpenGL(); }