代码有点多,一些概念还没搞懂,有点一头雾水的赶脚~
此片代码对应的Ogre3D电子书:Pro_OGRE_3D_Programming(新浪网盘免费下载)
相关文章:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
// Ogre_Pure.cpp : 定义控制台应用程序的入口点。 // /************************ Ogre初始化手动挡--渲染窗口的建立 1.渲染系统 2。渲染窗口---手动启动Ogre应用程序 3.让渲染窗口显示在屏幕的左上角,或者想要让渲染窗口的名称和渲染窗口的标题是用不一样的字符串 *************************/ #include "stdafx.h" #include <iostream> #include <Ogre.h> #include "OgreConfigFile.h" using namespace Ogre; using namespace std; int main() { /*当使用手动方式创建渲染窗口的时候,需要注意到是通过 RenderSystem 类而不是 Root 类的方法来创建。*/ Root *root = new Root("plugins_d.cfg"); // if(!root->restoreConfig())//如果没有ogre.cfg文件时 // { bool rtn = root->showConfigDialog(); root->saveConfig(); /* }*/ //root->loadPlugin("RenderSystem_GL_d");//使用插件管理的loadPlugin()方法来载入所需的API,(我使用了debug版本) String rName("OpenGL Rendering Subsystem"); RenderSystemList rList = root->getAvailableRenderers(); RenderSystemList::iterator it = rList.begin(); RenderSystem *rSys = 0; while(it != rList.end()) { rSys = *(it++); if(rSys->getName() == rName) { //设置渲染器,并结束循环 root->setRenderSystem(rSys); break; } } //true---是(否)自动建立一个渲染窗口给用户使用 //"My Render Window"---程序标题,默认使用"OGRE Render Window" root->initialise(false,"My Render Window");//完成Root的初始化,建立相应的渲染窗口 //得到自动创建的渲染窗口实例的指针 // RenderWindow *window = rSys->_createRenderWindow(//函数名字竟然有下划线,囧,和教材果然不一样 // "Manual Oger Window",//窗口的名字 // 800,//窗口的宽度(像素) // 600,//窗口的高度(像素) // false,//是否全屏显示 // 0);//其他参数,使用默认值 /*如果你希望让渲染窗口显示在屏幕的左上角,或者想要让渲染窗口的名称和渲染窗口的 标题是用不一样的字符串。那么你就需要用到 NameValuePairList 类(参数列表)的支持, 其实这不过是一个标准模板库(STL)的 map 对象,被 createRenderWindow 方法作为最后 一个参数传入,你只要把你希望改变的属性写在这个 map 中,系统就把会这些设置过滤出 来,其他你没有填入的选项仍采用默认设置*/ NameValuePairList params; params["left"] = "0"; params["top"] = "0"; params["title"] = "Alternate Window Title"; RenderWindow *window = rSys->_createRenderWindow(//函数名字竟然有下划线,囧,和教材果然不一样 "MainWindow",//窗口的名字 800,//窗口的宽度(像素) 600,//窗口的高度(像素) false,//是否全屏显示 ¶ms);//其他参数,使用默认值 //上面的代码创建了一个在屏幕的左上角现实的窗口,名称为“MainWindow”而标题是 //“Alternate Window Title”。 root->setRenderSystem(rSys); //之后可以创建摄像机和视口了 root->startRendering(); //最后就出现一个黑色窗口吧~ return 0; } |