游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1981|回复: 0

使用盖莫游戏引擎在线程中渲染的简单例子

[复制链接]

50

主题

69

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2010-3-5 09:57:00 | 显示全部楼层 |阅读模式
使用盖莫游戏引擎在线程中渲染的简单例子
绘制简单的几何体小例子
比较简单
代码如下:
#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;
}
贴图为:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-5-13 18:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表