CEGUI0.8.4例子

CEGUI0.8.4例子#defineGLUT_DISABLE_ATEXIT_HACK#pragmacomment(lib,”glew32.lib”)#include<stdlib.h>#include<gl/glew.h>#include<gl/glut.h>#include<CEGUI/CEGUI.h>#include<CEGUI/RendererM…

大家好,又见面了,我是你们的朋友全栈君。

#define GLUT_DISABLE_ATEXIT_HACK
#pragma comment(lib,”glew32.lib”)
#include<stdlib.h>
#include<gl/glew.h>
#include<gl/glut.h>
#include<CEGUI/CEGUI.h>
#include<CEGUI/RendererModules/OpenGL/GL3Renderer.h>
#include <CEGUI/RendererModules/OpenGL/GLRenderer.h>
#include<GL/glfw.h>
#include<CEGuiOpenGL3BaseApplication.h>
#include <CEGuiOpenGLBaseApplication.h>
#include<CEGUI/WindowManager.h>
void render(void);
void keyFunc(unsigned char , int , int );
int resource_group(void);
int load_data_files(void);
int create_window(void);
void Reshape(int w, int h);
int window_id;
bool keep_running = true;

int main(int argc, char *argv[])
{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowSize(640, 480);
glutCreateWindow(argv[0]);
// glutSetCursor(GLUT_CURSOR_NONE); //隐藏原有光标

glutReshapeFunc(Reshape);
GLenum err = glewInit();
CEGUI::OpenGL3Renderer& myRenderer = CEGUI::OpenGL3Renderer::create();
CEGUI::System::create(myRenderer);

resource_group();
load_data_files();
glutDisplayFunc(render);
glutMainLoop();
return 0;
}

void Reshape(int w, int h)
{

glViewport(0, 0, (GLsizei)w, (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(40.0, (GLfloat)w / (GLfloat)h, 1.0, 20.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void render(void)
{

glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
create_window();
CEGUI::System::getSingleton().renderAllGUIContexts();
glutSwapBuffers();
}

void keyFunc(unsigned char key, int x, int y)
{

switch (key)
{

case 113:
case 81:
case 27:
keep_running = false;
break;
}
}

int resource_group(void) //设置默认资源组
{

CEGUI::DefaultResourceProvider *rp = static_cast<CEGUI::DefaultResourceProvider*>
(CEGUI::System::getSingleton().getResourceProvider());

rp->setResourceGroupDirectory(“schemes”, “E:\\VTK\\CEGUI\\example\\datafiles\\schemes/”);
rp->setResourceGroupDirectory(“imagesets”, “E:\\VTK\\CEGUI\\example\\datafiles\\imagesets/”);
rp->setResourceGroupDirectory(“fonts”,”E:\\VTK\\CEGUI\\example\\datafiles\\fonts/”);
rp->setResourceGroupDirectory(“layouts”,”E:\\VTK\\CEGUI\\example\\datafiles\\layouts/”);
rp->setResourceGroupDirectory(“looknfeels”,”E:\\VTK\\CEGUI\\example\\datafiles\\looknfeel/”);

//rp->setResourceGroupDirectory(“schemas”,”E:\\VTK\\CEGUI\\example\\datafiles\\XMLRefSchema/”);

CEGUI::ImageManager::setImagesetDefaultResourceGroup(“imagesets”);
rp->setDefaultResourceGroup(“E:\\VTK\\CEGUI\\example\\datafiles/”);
CEGUI::Font::setDefaultResourceGroup(“fonts”);
CEGUI::Scheme::setDefaultResourceGroup(“schemes”);
CEGUI::WidgetLookManager::setDefaultResourceGroup(“looknfeels”);
CEGUI::WindowManager::setDefaultResourceGroup(“layouts”);
// CEGUI::XercesParser::setSchemaDefaultResourceGroup(“schemas”);
CEGUI::XMLParser* parser = CEGUI::System::getSingleton().getXMLParser();
if (parser->isPropertyPresent(“SchemaDefaultResourceGroup”))
parser->setProperty(“SchemaDefaultResourceGroup”, “schemas”);
return 1;

}

int load_data_files(void) //载入资源文件
{

CEGUI::SchemeManager::getSingleton().createFromFile( “TaharezLook.scheme” );

CEGUI::FontManager::getSingleton().createFromFile( “DejaVuSans-10.font” );

CEGUI::System::getSingleton().getDefaultGUIContext().setDefaultFont( “DejaVuSans-10” );

CEGUI::System::getSingleton().getDefaultGUIContext().getMouseCursor().setDefaultImage( “TaharezLook/MouseArrow” );

CEGUI::System::getSingleton().getDefaultGUIContext().setDefaultTooltipType( “WindowsLook/Tooltip” );

return 1;
}

int create_window(void) //创建一个窗口
{

using namespace CEGUI;

WindowManager &wmgr = WindowManager::getSingleton();

Window* myRoot = wmgr.createWindow(“DefaultWindow”, “root”);
System::getSingleton().getDefaultGUIContext().setRootWindow( myRoot );

FrameWindow *fWnd = (FrameWindow*)wmgr.createWindow(“TaharezLook/FrameWindow”, “testWindow”);
myRoot->addChild(fWnd);

// position a quarter of the way in from the top-left of parent.
fWnd->setPosition( UVector2( UDim( 0.25f, 0.0f ), UDim( 0.25f, 0.0f ) ) );
// set size to be half the size of the parent
fWnd->setSize( USize( UDim( 0.5f, 0.0f ), UDim( 0.5f, 0.0f ) ) );

fWnd->setText(“Hello World!!”);
/*Window* myRoot = WindowManager::getSingleton().loadLayoutFromFile( “1.layout” );
System::getSingleton().getDefaultGUIContext().setRootWindow( myRoot );*/
return 1;
}

 

转载于:https://www.cnblogs.com/wenguang1996/p/5086832.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163747.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 黑客攻防工具实战从新手到高手pdf_手机黑客攻防书籍

    黑客攻防工具实战从新手到高手pdf_手机黑客攻防书籍之前上传过一次,但是网盘原因,无法下载了。这两天花了点时间重新上传好。《黑客防线》:点击下载《黑客X档案》:

    2022年9月17日
    0
  • 机器学习-数据归一化方法(Normalization Method)「建议收藏」

    机器学习-数据归一化方法(Normalization Method)「建议收藏」我的个人微信公众号:Microstrong微信公众号ID:MicrostrongAI公众号介绍:Microstrong(小强)同学主要研究机器学习、深度学习、计算机视觉、智能对话系统相关内容,分享在学习过程中的读书笔记!期待您的关注,欢迎一起学习交流进步!知乎专栏:https://zhuanlan.zhihu.com/Microstrong个人博客:https://blog.csd…

    2022年6月23日
    23
  • mipiLCD屏幕参数_mipi接口液晶屏

    mipiLCD屏幕参数_mipi接口液晶屏主屏通过lt8911exb将mipi信号转换成EDP信号输出,调试从大的方向上看,主要是两方面,一个是bootloader阶段的的显示,一个是kernel阶段的现实,lt8911exb的初始化主要在bootloader阶段调试简介:本次调试lt8911exb的I2C接到SDM450的I2C3接口bootloader阶段由于lt8911exb使用的是I2C接口,所以在bootloader阶段需要实现该I2C接口的初始化工作,然后去初始化lt8911exb。然后再按照通用的方式去配置屏.

    2022年10月19日
    0
  • pytest 执行用例_python分布式爬虫

    pytest 执行用例_python分布式爬虫前言平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间

    2022年7月31日
    4
  • Python的命名规范「建议收藏」

    Python的命名规范「建议收藏」Python中常用的一些命名规范,遵守代码命名规范,使代码看起更优雅。

    2022年6月25日
    22
  • ArcGIS二次开发基础教程:开发环境配置教程(ArcEngine10.4+VS2019)[通俗易懂]

    ArcGIS二次开发基础教程:开发环境配置教程(ArcEngine10.4+VS2019)[通俗易懂]ArcEngine10.4+VS2019(其他版本类似)开发环境配置教程由于ArcGIS、ArcEngine以及承载开发环境的VisualStudio的版本众多,其开发环境的配置也有不小的难度,故写此文章写给新入门ArcGIS二次开发的同学,帮助他们摆平入门的第一道坎。(当然不是,主要是写给我自己以后看的,省得我又要到处找教程)进行ArcGIS二次开发有很多种方式,比如现在主流的Python、AE+C#等。如题,这里说的是AE+C#开发的第一步,开发环境的配置。对进一步开发有兴趣的朋友可以去看我的CS

    2022年7月23日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号