OpenGL'reshape()'功能视口边框背景

时间:2013-10-07 20:23:40

标签: c++ opengl colors viewport

我在OpenGL 3.2+程序中使用Win32创建了一个窗口,我正在尝试一些东西。 目前我正在使用下面的reshape()函数调整窗口大小等。

我在视口中添加了一个边框,因此它在视口周围留下了一个50px的边框,可以达到我的预期效果。

    void reshape(int width, int height, int pers_Dist)
    {
      screenWidth = width;
      screenHeight = height;
      float border = 50;

      glViewport(0+border,0+border,width-(border*2),height-(border*2));

      MatrixRoutines<float>::perspective(pers_Dist, (GLfloat)screenWidth/(GLfloat)screenHeight, 1, 200, ProjectionMatrix);
    }

背景颜色使用init()设置在glClearColor(0.0,0.0,0.0,0.0);函数内,设置为黑色。

我的问题是,边框可以为背景指定不同的颜色吗? (如果我改变颜色,背景和边框都是颜色集)。

1 个答案:

答案 0 :(得分:1)

使用scissor regions告诉OpenGL清除的位置:

  1. glDisable( GL_SCISSOR_TEST )
  2. 使用边框颜色清除
  3. 将剪刀设置为边框区域
  4. glEnable( GL_SCISSOR_TEST )
  5. 内部颜色清晰
  6. 渲染场景