int window_views_mouse_get_y() { gs_scalar sy; sy = (window_get_height() - window_get_region_height_scaled()) / 2; int y = (window_mouse_get_y() - sy) * ((gs_scalar)window_get_region_height() / (gs_scalar)window_get_region_height_scaled()); if (view_enabled) { y = view_yview[view_current]+((y-view_yport[view_current])/(double)view_hport[view_current])*view_hview[view_current]; } return y; /* int x = window_mouse_get_x(); int y = window_mouse_get_y(); if (view_enabled) { for (int i = 0; i < 8; i++) { if (view_visible[i]) { if (x >= view_xport[i] && x < view_xport[i]+view_wport[i] && y >= view_yport[i] && y < view_yport[i]+view_hport[i]) { return view_yview[i]+((y-view_yport[i])/(double)view_hport[i])*view_hview[i]; } } } } return y; */ }
void display_reset(int samples, bool vsync) { set_synchronization(vsync); if (!GLEW_EXT_framebuffer_object) return; GLint fbo; glGetIntegerv(GL_FRAMEBUFFER_BINDING_EXT, &fbo); GLuint ColorBufferID, DepthBufferID; // Cleanup the multi-sampler fbo if turning off multi-sampling if (samples == 0) { if (enigma::msaa_fbo != 0) { glDeleteFramebuffers(1, &enigma::msaa_fbo); enigma::msaa_fbo = 0; } return; } //TODO: Change the code below to fix this to size properly to views // If we don't already have a multi-sample fbo then create one if (enigma::msaa_fbo == 0) { glGenFramebuffersEXT(1, &enigma::msaa_fbo); } glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, enigma::msaa_fbo); // Now make a multi-sample color buffer glGenRenderbuffersEXT(1, &ColorBufferID); glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, ColorBufferID); glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER_EXT, samples, GL_RGBA8, window_get_region_width(), window_get_region_height()); // We also need a depth buffer glGenRenderbuffersEXT(1, &DepthBufferID); glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, DepthBufferID); glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER_EXT, samples, GL_DEPTH_COMPONENT24, window_get_region_width(), window_get_region_height()); // Attach the render buffers to the multi-sampler fbo glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_EXT, ColorBufferID); glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, DepthBufferID); }
void display_reset(int samples, bool vsync) { int interval = vsync ? 1 : 0; if (enigma::is_ext_swapcontrol_supported()) { wglSwapIntervalEXT(interval); } GLint fbo; glGetIntegerv(GL_FRAMEBUFFER_BINDING, &fbo); GLuint ColorBufferID, DepthBufferID; // Cleanup the multi-sampler fbo if turning off multi-sampling if (samples == 0) { if (enigma::msaa_fbo != 0) { glDeleteFramebuffers(1, &enigma::msaa_fbo); enigma::msaa_fbo = 0; } return; } //TODO: Change the code below to fix this to size properly to views // If we don't already have a multi-sample fbo then create one if (enigma::msaa_fbo == 0) { glGenFramebuffers(1, &enigma::msaa_fbo); } glBindFramebuffer(GL_FRAMEBUFFER, enigma::msaa_fbo); // Now make a multi-sample color buffer glGenRenderbuffers(1, &ColorBufferID); glBindRenderbuffer(GL_RENDERBUFFER, ColorBufferID); glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, samples, GL_RGBA8, window_get_region_width(), window_get_region_height()); // We also need a depth buffer glGenRenderbuffersEXT(1, &DepthBufferID); glBindRenderbufferEXT(GL_RENDERBUFFER, DepthBufferID); glRenderbufferStorageMultisample(GL_RENDERBUFFER, samples, GL_DEPTH_COMPONENT24, window_get_region_width(), window_get_region_height()); // Attach the render buffers to the multi-sampler fbo glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, ColorBufferID); glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, DepthBufferID); }