From b7248b3e97da0c9d57092631cf6f835d219f5f6b Mon Sep 17 00:00:00 2001 From: hyzboy Date: Tue, 27 Nov 2018 20:20:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A3=E7=A1=AE=E8=BE=93=E5=87=BA=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=99=A8=E6=95=B0=E9=87=8F=EF=BC=8C=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/NullWindow/CMakeLists.txt | 2 +- example/NullWindow/main.cpp | 80 +++++++++++++++------- inc/hgl/render/device/RenderDevice.h | 6 +- src/RenderDevice/GLFW/RenderDeviceGLFW.cpp | 14 ++-- 4 files changed, 66 insertions(+), 36 deletions(-) diff --git a/example/NullWindow/CMakeLists.txt b/example/NullWindow/CMakeLists.txt index 4555d751..f7b957ef 100644 --- a/example/NullWindow/CMakeLists.txt +++ b/example/NullWindow/CMakeLists.txt @@ -1,3 +1,3 @@ add_executable(NullWindow main.cpp) -target_link_libraries(NullWindow PRIVATE MathGeoLib glfw GL) +target_link_libraries(NullWindow PRIVATE MathGeoLib glfw GL ULRE.RenderDevice) diff --git a/example/NullWindow/main.cpp b/example/NullWindow/main.cpp index 17038080..874d9ae9 100644 --- a/example/NullWindow/main.cpp +++ b/example/NullWindow/main.cpp @@ -1,38 +1,68 @@ -#include +#include +#include + +using namespace hgl; + +void put(const struct VideoMode *vm) +{ + std::cout<<"\t"<width<<"x"<height<<","<bit<<"bits,"<freq<<"hz"; +} + +void put(const struct Display *disp) +{ + std::cout<<"["<name.c_str()<<"]["<width<<"x"<height<<"]["<x<<","<y<<"]"<GetCurVideoMode()); + std::cout< &vml=disp->GetVideoModeList(); + + for(int i=0;iInit()) { - /* Render here */ - glClear(GL_COLOR_BUFFER_BIT); - - /* Swap front and back buffers */ - glfwSwapBuffers(window); - - /* Poll for and process events */ - glfwPollEvents(); + std::cerr<<"Init RenderDevice(GLFW) failed."<GetName(); + + std::cout<<"RenderDevice: "< disp_list; + + device->GetDisplayList(disp_list); + + const int count=disp_list.GetCount(); + + std::cout<<"Device have "< &GetVideoModeList()=0; + virtual const VideoMode *GetCurVideoMode()const=0; + virtual const ObjectList &GetVideoModeList()const=0; }; struct WindowSetup @@ -108,7 +108,7 @@ namespace hgl virtual const UTF8String GetName()=0; ///<取得设备名称 - virtual const void GetDisplayList(List &); ///<取得显示屏列表 + virtual const void GetDisplayList(List &)=0; ///<取得显示屏列表 virtual const Display * GetDefaultDisplay()=0; ///<取得默认显示屏 public: diff --git a/src/RenderDevice/GLFW/RenderDeviceGLFW.cpp b/src/RenderDevice/GLFW/RenderDeviceGLFW.cpp index 88de9016..777967d6 100644 --- a/src/RenderDevice/GLFW/RenderDeviceGLFW.cpp +++ b/src/RenderDevice/GLFW/RenderDeviceGLFW.cpp @@ -22,13 +22,13 @@ namespace hgl public: - const VideoMode *GetCurVideoMode()override{return cur_video_mode;} - const ObjectList &GetVideoModeList()override{return video_mode_list;} + const VideoMode *GetCurVideoMode()const override{return cur_video_mode;} + const ObjectList &GetVideoModeList()const override{return video_mode_list;} }; VideoMode *ConvertVideoMode(const GLFWvidmode *mode) { - if(mode) + if(!mode) return nullptr; VideoMode *vm=new VideoMode; @@ -95,12 +95,12 @@ namespace hgl const bool Init()override{return true;} const void Close()override{}; - const UTF8String GetName()override ///<取得设备名称 + const UTF8String GetName()override { - return UTF8String("GLFW")+UTF8String(glfwGetVersionString()); + return UTF8String("GLFW ")+UTF8String(glfwGetVersionString()); } - const void GetDisplayList(List &disp_list) ///<取得显示屏列表 + const void GetDisplayList(List &disp_list) override { int count=0; @@ -110,7 +110,7 @@ namespace hgl disp_list+=GetDisplayAttrib(ml[i]); } - const Display * GetDefaultDisplay() + const Display * GetDefaultDisplay() override { if(!default_display) default_display=GetDisplayAttrib(glfwGetPrimaryMonitor());