|
使用盖莫游戏引擎在线程中渲染的简单例子
绘制简单的几何体小例子
比较简单
代码如下:
#include <GEngine/GaiMo.hpp>
core::Color color1(0.0f,0.0f,1.0f),color2(0.0f,1.0f,0.0f);
core::Color color3(1.0f,0.0f,0.0f),color4(1.0f,0.0f,1.0f);
core::Color color5(1.0f,1.0f,0.0f),color6(0.0f,1.0f,1.0f);
core:evice *device = NULL;
ThreadId id = 0;
bool flag = true;
void G_CALL Render(void* ptr)
{
device->AttachRender();
do
{
BEGIN_LOOP(device)
//! 绘制矩形
core::Render::SetCurrentColor(color1);
core::Render::FillRect(100,120,50,50);
//! 绘制矩形
core::Render::SetCurrentColor(color2);
core::Render::DrawRect(100,180,50,50);
//! 绘制网格
core::Render::SetCurrentColor(color3);
core::Render::DrawGrid(Point(10,10),Point(20,20),Point(5,5));
//! 绘制变色矩形
core::Render::DrawRaisedRectangle(libmath::Rect<float>(250,50,50,50),color5,color6);
//! 绘制三角形
core::Render::SetCurrentColor(color4);
core::Render::DrawTriangle(Point(200,180),Point(200,270),Point(290,110),true);
END_LOOP(device);
}while(flag);
}
int Main()
{
device = core::InitDevice("线程渲染");
device->Ortho2D();
device->DetachRender();
id = device->CreateThread(Render,NULL);
BEGIN_LOOP(device)
if(device->GetInput()->IsPressedKey(KEY_BACKSPACE) == true)
flag = false;
END_LOOP(device)
device->Close();
device->Drop();
return 1;
}
贴图为:
|
|