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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • dataloader 源码_DataLoader

    dataloader 源码_DataLoaderimportpaddle.fluidasfluidimportnumpyasnpBATCH_NUM=10BATCH_SIZE=16EPOCH_NUM=4CLASS_NUM=10ITERABLE=True#whetherthecreatedDataLoaderobjectisiterableUSE_GPU=False#whethertous…

    2022年6月11日
    35
  • 锐龙cpu天梯图_cpu性能天梯排行图最新

    锐龙cpu天梯图_cpu性能天梯排行图最新近段时间,桌面CPU平台有了比较大的变化,AMD今年的Ryzen全面迎来逆袭,此外还拿出了最高16核的RyzenThreadripper顶级处理器。而为应对AMDRyzen的崛起,Intel近日也正式推出了八代CannonLake(10/14nm),不再挤牙膏,全线都带来了多核升级,性能激增,因而备受关注。而“电脑百事”此次CPU天梯图2017年9月版主要是在8月版的基础上,率先加入Inte…

    2025年12月10日
    7
  • 二元树中和为某一值的全部路径

    二元树中和为某一值的全部路径

    2021年11月29日
    39
  • 小程序-微信开发者工具使用教程_小程序开发教程

    小程序-微信开发者工具使用教程_小程序开发教程一、开始开发小程序的第一步,你需要拥有一个小程序帐号,通过这个帐号你就可以管理你的小程序。跟随这个教程,开始你的小程序之旅吧!二、申请帐号进入小程序注册页 (https://mp.w

    2022年8月1日
    4
  • JavaScript之正则表达式的使用方法详细介绍[通俗易懂]

    JavaScript之正则表达式的使用方法详细介绍[通俗易懂]首先必须说明的是,这类文章(js正则表达式)在c站或者整个it类论坛是很多人写过的,而我认为我这篇的不同之处在于更加“小白”化,这也与我一贯的风格有关吧。关于JavaScript正则表达式,其他的文章大多一上来就太过激进,不利于初学者学习(我当粗就是这么被劝退的),这也是我为什么要坚持写这篇文章,希望小白在看了这篇文章后,不管能不能完全掌握JavaScript正则表达式,但至少对JavaScript正则表达式能有一个比较深刻的印象吧。

    2025年8月5日
    4
  • 变量,数据类型以及运算符概述

    变量,数据类型以及运算符概述

    2022年3月6日
    50

发表回复

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

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