完成null windows范例

This commit is contained in:
hyzboy 2018-11-27 21:32:36 +08:00
parent f521af3702
commit 2d68ac7735
2 changed files with 34 additions and 55 deletions

View File

@ -1,34 +1,10 @@
#include<hgl/render/RenderDevice.h>
#include<hgl/render/RenderWindow.h>
#include<iostream>
#include<math.h>
#include<GLFW/glfw3.h>
using namespace hgl;
void put(const struct VideoMode *vm)
{
std::cout<<"\t"<<vm->width<<"x"<<vm->height<<","<<vm->bit<<"bits,"<<vm->freq<<"hz";
}
void put(const struct Display *disp)
{
const int inch=sqrt((disp->width*disp->width)+(disp->height*disp->height))*0.03937008;
std::cout<<"["<<disp->name.c_str()<<"]["<<disp->width<<"x"<<disp->height<<" mm,"<<inch<<" inch][offset "<<disp->x<<","<<disp->y<<"]"<<std::endl;
std::cout<<"\tcurrent video mode: ";
put(disp->GetCurVideoMode());
std::cout<<std::endl;
const ObjectList<VideoMode> &vml=disp->GetVideoModeList();
for(int i=0;i<vml.GetCount();i++)
{
std::cout<<"\t"<<i<<" : ";
put(vml[i]);
std::cout<<std::endl;
}
}
int main(void)
{
RenderDevice *device=CreateRenderDeviceGLFW();
@ -45,27 +21,30 @@ int main(void)
return -2;
}
{
const UTF8String device_name=device->GetName();
WindowSetup ws;
std::cout<<"RenderDevice: "<<device_name.c_str()<<std::endl;
ws.Name=U8_TEXT("Null Window");
RenderSetup rs;
RenderWindow *win=device->Create(1280,720,&ws,&rs);
win->Show();
glClearColor(0,0,0,1);
while(win->IsOpen())
{
win->MakeToCurrent();
glClear(GL_COLOR_BUFFER_BIT);
win->SwapBuffer();
win->PollEvent();
}
List<Display *> disp_list;
device->GetDisplayList(disp_list);
const int count=disp_list.GetCount();
std::cout<<"Device have "<<count<<" display."<<std::endl;
for(int i=0;i<count;i++)
{
std::cout<<"Display "<<i<<" ";
put(GetObject(disp_list,i));
std::cout<<std::endl;
}
delete win;
delete device;
return 0;
}

View File

@ -39,21 +39,21 @@ namespace hgl
struct WindowSetup
{
UTF8String Name; ///<窗口标题
UTF8String Name; ///<窗口标题
// OSString IconFilename; ///<图标文件名称
// OSString CursorFilename; ///<光标文件名称
bool Edge; ///<是否显示边框
// OSString IconFilename; ///<图标文件名称
// OSString CursorFilename; ///<光标文件名称
bool Edge =true; ///<是否显示边框
bool SysMenu; ///<是否显示系统菜单
bool Right; ///<窗口是否使用靠右风格
bool SysMenu =true; ///<是否显示系统菜单
bool Right =false; ///<窗口是否使用靠右风格
bool Resize; ///<窗口大小是否可调整
bool Minimize; ///<窗口是否可以最小化
bool Maximize; ///<窗口是否可以最大化
bool Resize =false; ///<窗口大小是否可调整
bool Minimize =false; ///<窗口是否可以最小化
bool Maximize =false; ///<窗口是否可以最大化
bool TopMost; ///<永远在最上面
bool AppTaskBar; ///<程序项在任务栏显示
bool TopMost =false; ///<永远在最上面
bool AppTaskBar =true; ///<程序项在任务栏显示
};
/**