【发布时间】:2014-01-06 17:13:47
【问题描述】:
我正在关注 youtube 上的教程,但问题是教程的制作者使用的是 SDL 1.2,而我使用的是 2.00,因此我不得不按照 SDL 迁移指南稍微更改代码。但是,我的代码并没有按照它应该做的事情来绘制一个三角形。就那么简单。我得到的只是一个白屏。
======main============
#include "stdafx.h"
void init()
{
glClearColor(0.0, 0.0, 0.0, 1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45, 640.0 / 480.0, 1.0, 500.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(0.0, 2.0, -5.0);
glVertex3f(-2.0, -2.0, -5.0);
glVertex3f(2.0, -2.0, -5.0);
glEnd();
}
int main(int argc, char* argv[]){
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Window * window;
window = SDL_CreateWindow("OpenGLTest", 300, 300, 640, 480, SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL);
init();
SDL_Event * mainEvent;
mainEvent = new SDL_Event;
while (true){
SDL_PollEvent(mainEvent);
display();
SDL_GL_SwapWindow(window);
if (mainEvent->type == SDL_QUIT){
break;
}
}
return 0;
}
=====stdafx==========
#pragma once
#include <iostream>
#include <SDL.h>
#include <Windows.h>
#include <gl/GL.h>
#include <gl/GLU.h>
#define PI 3.14159265
using namespace std;
任何想法我做错了什么?
【问题讨论】:
-
尝试使用 glColor3f 或 glColor4f 设置颜色
-
但是不应该在黑色背景上绘制一个白色三角形吗?因为背景被清除为黑色,默认绘制颜色为白色?
-
我试过了。它没有工作
-
你设置 glViewport(0.f, [windowWidth], [windowHeight], 0.f) 了吗?
-
所以?该函数设置活动渲染区域,它不强制任何正交矩阵。