Пример #1
0
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;
*/
}
Пример #2
0
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);
}
Пример #3
0
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);
}