第一次接触openGL,写第一个基于win32控制台的图形渲染程序,我的cpp代码是:// OpenGLFirst.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"#include <windows.h>
#define GLUT_DISABLE_ATEXIT_HACK#include <gl\glut.h>
#include<gl\gl.h>
#include<gl\glu.h>
void RenderScene(void)
{
printf("渲染图形\n");
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 0.0f);
glRectf(10.0f, 20.0f, 20.0f, 10.0f);
glFlush();
}
void ChangeSize(GLsizei w, GLsizei h)
{
printf("改变窗体大小\n");
if(h == 0) h = 1; glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); if (w <= h)
glOrtho (0.0f, 250.0f, 0.0f, 250.0f*h/w, 1.0f, -1.0f);
else
glOrtho (0.0f, 250.0f*w/h, 0.0f, 250.0f, 1.0f, -1.0f); glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}void SetupRC(void)
{
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
}
int _tmain(int argc, char* argv[])
{
//glutInitWindowSize(500, 250);
//glutInitWindowPosition ( 140, 140 );
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE );
glutInit(&argc, argv); glutCreateWindow( "Demo" );
SetupRC();
glutDisplayFunc( RenderScene );
glutReshapeFunc(ChangeSize ); //glutMouseFunc ( Mouse ) ;
//glutMotionFunc ( Motion ) ;
//glutKeyboardFunc( Key ); glutMainLoop();
return 0;
}加入相应的lib和dll后,程序可以运行,但结果却在窗体上渲染不出一个红色矩形,这是为什么呢?希望知道的朋友指点一下,先谢了!
程序运行的截图是:
//#include "stdafx.h"#include <windows.h>
#define GLUT_DISABLE_ATEXIT_HACK#include <gl\glut.h>
#include<gl\gl.h>
#include<gl\glu.h>
void RenderScene(void)
{
printf("渲染图形\n");
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 0.0f);
glRectf(10.0f, 20.0f, 20.0f, 10.0f);
glFlush();
}
void ChangeSize(GLsizei w, GLsizei h)
{
printf("改变窗体大小\n");
if(h == 0) h = 1; glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); if (w <= h)
glOrtho (0.0f, 250.0f, 0.0f, 250.0f*h/w, 1.0f, -1.0f);
else
glOrtho (0.0f, 250.0f*w/h, 0.0f, 250.0f, 1.0f, -1.0f); glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}void SetupRC(void)
{
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
}
int _tmain(int argc, char* argv[])
{
//glutInitWindowSize(500, 250);
//glutInitWindowPosition ( 140, 140 );
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE );
glutInit(&argc, argv); glutCreateWindow( "Demo" );
SetupRC();
glutDisplayFunc( RenderScene );
glutReshapeFunc(ChangeSize ); //glutMouseFunc ( Mouse ) ;
//glutMotionFunc ( Motion ) ;
//glutKeyboardFunc( Key ); glutMainLoop();
return 0;
}加入相应的lib和dll后,程序可以运行,但结果却在窗体上渲染不出一个红色矩形,这是为什么呢?希望知道的朋友指点一下,先谢了!
程序运行的截图是:
解决方案 »
- 用右键拖动列表框1、2中显示的词语(一个列表框中条目的上下拖动、两个列表框之间条目的拖动),可以改变其显示次序。
- 请教,关于PropertyPage的问题。不过俺忒穷了
- 如何获得slider控件上小游标的当前位置?
- 请教VC 设置 IIS 的问题
- 高分、出钱请高手做一最优排料的OCX控件。
- CListCtrl如何在程序中改变各个column的顺序?
- 问题。。。。解决马上给分,不难!
- 如何避免按下ESC,对话框就关闭!
- FireDragon游戏开发库,免费,完全开放源码,快速更新,需要遵守的Licence与Linux一样。...
- 如何重启另一个程序
- 关于directshow的应用
- 局域网中进行文件传输,如何充分发挥网络效率?
似乎你不是按照这个顺序写的试试类似这样的..glOrtho(0, 640, 480, 0, -1, 1);