/*!==========================================================================
*
* 盖莫游戏引擎(GaiMo Game Engine)
*
* 版权所有 (C) 2009-2009 成都盖莫软件技术工作室 保留所有权利
* Copyright (C) 成都盖莫软件技术工作室. All Rights Reserved.
*
* 了解更多情况,请访问 http://www.gaimo.net
****************************************************************************/
//! 本例子主要测试盖莫游戏引擎的线程渲染和绘制基本2d几何对象
//! 2010.04.08
#include <GEngine/Gaimo.hpp>
using namespace core;
using namespace ZThread;
Color color1(0.0f,0.5f,0.5f),color2(0.0f,1.0f,0.0f);
Color color3(1.0f,0.0f,0.0f),color4(1.0f,0.0f,1.0f);
Color color5(1.0f,1.0f,0.0f),color6(0.0f,1.0f,1.0f);
RefPtr<Device> device;
RefPtr<VideoDriver> videodriver;
void Render(bool flag);
//! 线程渲染类
class RenderThread : public Runnable
{
public:
RenderThread():flag(false){}
void run(){Render(flag);}
void Stop(){flag = true;}
private:
bool flag;
};
int Main()
{
device = core::InitDevice("线程渲染");
videodriver = device->GetVideoDriver();
videodriver->DetachRender();
RenderThread* render;
try
{
render = new RenderThread;
ZThread::Thread thread(render);
render->Stop();
}
catch(Synchronization_Exception& e)
{
std::cout<<e.what()<<std::endl;
}
BEGIN_LOOP(device)
END_LOOP(device)
return 1;
}
void Render(bool flag)
{
//! 获取引擎资源管理器
core::RefPtr<core::ResourceManager> resmgr = device->GetResourceManager();
videodriver->AttachRender();
videodriver->Ortho2D();
videodriver->SetClearColor(core::Color::Blue);
BEGIN_LOOP(device)
videodriver->SetClearBuffer(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
//! 绘制矩形
videodriver->SetColor(color1);
videodriver->FillRect(100,120,50,50);
//! 绘制矩形
videodriver->SetColor(color2);
videodriver->DrawRect(100,180,50,50);
//! 绘制网格
videodriver->SetColor(color3);
videodriver->DrawGrid(Point(10,10),Point(20,20),Point(5,5));
//! 绘制变色矩形
//core::Render::DrawRaisedRectangle(libmath::Rect<float>(250,50,50,50),color5,color6);
//! 绘制三角形
videodriver->SetColor(color4);
//videodriver->DrawTriangle(Point(200,180),Point(200,270),Point(290,110),true);
//! 绘制点
videodriver->DrawPoint(Point(200,120));
RETURN_LOOP(flag,true)
END_LOOP(device);
}
这是使用盖莫游戏引擎2.1.1线程渲染的例子
由于比较简单这里就不提图片了(免得浪费空间)