支持非CORE模式初始化

This commit is contained in:
hyzboy 2018-11-28 16:13:49 +08:00
parent 8abbf0117d
commit 52fb2eed7e
3 changed files with 23 additions and 4 deletions

View File

@ -1,6 +1,7 @@
#include<hgl/render/RenderDevice.h>
#include<hgl/render/RenderWindow.h>
#include<iostream>
#include<string.h>
#include<GLFW/glfw3.h>
#include<GL/glext.h>
@ -33,7 +34,7 @@ void output_ogl_info()
std::cout<<" "<<i<<" : "<<glGetStringi(GL_EXTENSIONS,i)<<std::endl;
}
int main(void)
int main(int argc,char **argv)
{
RenderDevice *device=CreateRenderDeviceGLFW();
@ -55,6 +56,16 @@ int main(void)
RenderSetup rs;
if(argc>1)
{
if(stricmp(argv[1],"core")==0)
rs.opengl.core=true;
else
rs.opengl.core=false;
}
else
rs.opengl.core=false;
RenderWindow *win=device->CreateWindow(1280,720,&ws,&rs);
win->MakeToCurrent(); //切换当前窗口到前台

View File

@ -95,6 +95,7 @@ namespace hgl
{
bool debug=true;
bool core=true;
bool es=false;
bool egl=false;

View File

@ -86,16 +86,23 @@ namespace hgl
if(gs->opengl.es)
{
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, gs->opengl.major);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, gs->opengl.minor);
}
else
else if(gs->opengl.core)
{
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); //核心模式
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, true); //向前兼容模式(无旧特性)
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, gs->opengl.major);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, gs->opengl.minor);
}
else
{
//glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_COMPAT_PROFILE); //兼容模式
}
glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, gs->opengl.debug); //调试模式
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, gs->opengl.major);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, gs->opengl.minor);
glfwWindowHint(GLFW_VISIBLE, true); //是否显示