
MYGUI
文章平均质量分 66
geometry_
这个作者很懒,什么都没留下…
展开
-
MYGUI Generic factory
/*! @file @author Albert Semenov @date 06/2009 @module*/#ifndef __MYGUI_GENERIC_FACTORY_H__#define __MYGUI_GENERIC_FACTORY_H__#include "MyGUI_Prerequest.h"#include "MyG转载 2012-02-23 21:34:47 · 847 阅读 · 0 评论 -
WidgetManager
照例列出WidgetManager的全部家当:mDelegates 用来存储parse XML的delegate重头在于mFactoryList obsoletemVectorIUnlinkWidgetmUnlinkWidgets这里只是大战前的猜测:mFactoryList 中存放的是IWidgetFactory重点分析:引入代码:原创 2012-03-14 20:57:30 · 2148 阅读 · 0 评论 -
MyGUI super boss Gui
照例列出其五脏六腑:member function:f因为所有的Gui 涉及动态加载的xml文件的都回与打交道 所以继续之前的分析:ResourceManager原创 2012-03-15 12:54:13 · 1224 阅读 · 0 评论 -
Widget 的创建
Widget 不是由手工创建的,是由三个工厂类类创建,组织,管理的。这三个类分别为抽象模板类工厂:用来创建类实例GenericFacotory template class GenericFactory { public: typedef delegates::CDelegate1 Delegate; static typename Delega原创 2012-03-14 19:15:47 · 779 阅读 · 0 评论 -
IUnlinkWidget
namespace MyGUI{ class MYGUI_EXPORT IUnlinkWidget { public: virtual ~IUnlinkWidget() { } virtual void _unlinkWidget(Widget* _widget) = 0; }; typedef std::vector VectorIUnlinkWidget;} //原创 2012-03-15 11:20:09 · 619 阅读 · 0 评论 -
Delegate implement
用宏来实现: // шаблон класса делегата MYGUI_TEMPLATE MYGUI_TEMPLATE_PARAMS class MYGUI_C_DELEGATE { public: typedef MYGUI_I_DELEGATE MYGUI_TEMPLATE_ARGS IDelegate; MYGUI_C_DELEGATE () : mD原创 2012-03-14 13:58:29 · 922 阅读 · 0 评论 -
MyGUI 功能与架构
在3.2.0发现了一个好消息,MyGUI终于传出架构文档。坏消息是文档是俄文的。恨得我想学俄语。不过幸好有goolge翻译,决定结合源代码将文档啃出来。友情支持,google翻译:******************************************************************************************************翻译 2012-03-17 12:51:16 · 11813 阅读 · 1 评论 -
ILayer
层在MyGUI 是一个容器,层的组织是什么样的,它究竟包含哪些东西?按照接口的定义而言,借口只是纯虚函数的组合,没有member varible ILayer() { } virtual ~ILayer() { } // 铁路的名称,不明白google为何这样翻译,应该是层名吧? const std::string& getName() const { return原创 2012-03-17 19:55:18 · 2994 阅读 · 0 评论 -
MyGUI 3.2.0 出炉了
其实3.2.0 已经在MyGUI的路线图上了。俄国人做事儿真的很认真!估计以后要找一个会俄语的朋友来理解注释了。虽然google差强人意。MyGUI 对软件架构做了重新的组织,最明显的是添加了一个Singlton的一个基类成为所有的Manger的父类,让Manager精简了许多。但是我的着手点还是从3.0.1,系统的了解UI的一套机制,前天看到论坛行有些原创 2012-03-15 10:36:54 · 1652 阅读 · 1 评论 -
InputManager inject Mouse Move 事件
前面几篇主要介绍了MyGUI类的静态关系,还有一些粗糙的分析。先看下关于Widget关于Inputmanager注入鼠标移动事件时一些列流程。 bool InputManager::injectMouseMove(int _absx, int _absy, int _absz) { // запоминаем позицию mMousePosition.set(_absx,原创 2012-03-20 18:22:07 · 1803 阅读 · 0 评论 -
BaseManager
void BaseManager::run() { MSG msg; while (true) { while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } if (mExit) break;原创 2012-03-20 19:23:40 · 1653 阅读 · 0 评论 -
LayerManager
疑问为何LayerManager作为IUnlinkWidget 的derived class而且在initialise()中将自己的this指针传递给WidgetManager void LayerManager::initialise() { MYGUI_ASSERT(!mIsInitialise, INSTANCE_TYPE_NAME << " initialised twi原创 2012-03-06 12:55:40 · 2977 阅读 · 0 评论 -
ILayerNOde 功能
ILayerNOde 功能 ILayerItem* LayerNode::getLayerItemByPoint(int _left, int _top) { // сначала пикаем детей for (VectorILayerNode::iterator iter = mChildItems.begin(); iter!=mChildItems.end(); ++it原创 2012-03-17 20:24:52 · 770 阅读 · 0 评论 -
DirectXRenderManager 渲染机制
从类结构上看其继承与RenderManager和IRenderTarget架构上设计来说,这点事为了敞开接口,与硬件实现分离,通过C++的多态机制来实现接口分离的作用! void DirectXRenderManager::drawOneFrame() { static Timer timer; //static variable first initialized //it原创 2012-03-20 20:17:30 · 1735 阅读 · 0 评论 -
IRenderItem 渲染
IRenderTarget 和 ITexture之间的关系:IRenderTarget 与 ITexture 之间的关系需要用Sequence 图进行交互表示。RenderItem的数据结构:其实就是widget的数据结构 size_t mNeedVertexCount; bool mOutDate; VectorDrawItem mDrawItems;原创 2012-03-08 09:10:04 · 739 阅读 · 0 评论 -
DirectVertex IVertexBuffer
DirectXRender 是最后实际上要渲染的顶点。原创 2012-03-21 19:47:11 · 648 阅读 · 0 评论 -
IUnlinkWidget
这个类至今还没有搞清楚作用:通过分析WidgetManger的成员变量:mVectorIUnlinkWidget引出的:给出其子类:子类是一些Manger类,初步推测IUnlinkWidget是涉及Manager类与employer之间交互,原创 2012-03-15 10:23:56 · 826 阅读 · 2 评论 -
IWidgetFactory obsolete
貌似与FactoryManger 与 GenericFactory 的效用相似但是它采用了继承关系:两层关系:IWidgetFactory而BaseWidgetFactory 很值得注意,因为作者在MyGui的命名空间中引入 namespace factory 引入代码:这种模式在MyGUI中应该是过时的:因为关于IWidgetFactory的操作都是原创 2012-03-14 20:56:20 · 603 阅读 · 0 评论 -
Render process
之前看代码都是纠结于widget的创建,以为只要看懂widget创建的问题,就基本上看懂MyGui但是当看到widget的渲染就没从着手。下面的博客给了很大的提示。http://blog.csdn.net/liigo/article/details/7089832void DirectXRenderManager::drawOneFrame(){ static Time原创 2012-03-06 12:44:21 · 902 阅读 · 0 评论 -
LayerItem 渲染attachNode 的作用
LayerItem其成员变量: private: // render to which Layer // Here just record the Layer's reference ILayer* mLayer; // Layer nodes ILayerNode * mLayerNode; ILayerNode * mSaveLayerNode; t原创 2012-03-06 19:03:09 · 1018 阅读 · 0 评论 -
frameEntered -- Widget class
有了代理C++的世界真美好!下列是application 应用中的帧切换事件://frame enter event initializevoid Widget::frameEntered(float _frame){ //ToolTip is set false default! if ( ! mEnableToolTip ) return; IntPoint原创 2012-03-05 19:02:59 · 1022 阅读 · 1 评论 -
ISubWidgetText --ISubWidget
ISubWidgetText void EditText::createDrawItem(ITexture* _texture, ILayerNode * _node) { mNode = _node; // если уже есть текстура, то атачимся, актуально для смены леера if (nullptr != mText原创 2012-03-07 12:29:48 · 897 阅读 · 0 评论 -
WidgetEvent
是widget 的事件结构负责注册保存时间所对应的事件代理例如 /** Event : Event about changing tooltip state.\n signature : void method(MyGUI::Widget* _sender, const MyGUI::ToolTipInfo& _info); @param _sender widget th原创 2012-03-05 19:20:53 · 649 阅读 · 0 评论 -
IWidgetCreator 控件创建接口
Gui 与 PointerManger 继承关系如下图它们有一个共同点是都继承与IWidgetCreator同样为众多基类的Widget class 继承与这两个。如图而IWidgetCreator有一个纯虚函数(接口肯定是纯虚的。) protected: virtual Widget* baseCreateWidget( WidgetStyle原创 2012-03-06 18:11:44 · 634 阅读 · 0 评论 -
ICroppedRectangle
IntRect getAbsoluteRect() const { return IntRect(mAbsolutePosition.left, mAbsolutePosition.top, mAbsolutePosition.left+mCoord.width, mAbsolutePosition.top+mCoord.height); }The widget class has deri原创 2012-03-05 19:07:14 · 567 阅读 · 0 评论 -
PointerManager --渲染
baseCreateWidgetThe pointer manager use to creat widget??? who call this function // создает виджет Widget* PointerManager::baseCreateWidget(WidgetStyle _style, const std::string& _type, const原创 2012-03-06 17:59:05 · 2055 阅读 · 0 评论 -
IVertexBuffer 渲染
Buffer的意思就是暂时的冗余存储 DirectXVertexBuffer::DirectXVertexBuffer(IDirect3DDevice9 *_device, DirectXRenderManager *_pRenderManager) : mNeedVertexCount(0), mVertexCount(RENDER_ITEM_STEEP_REALLOCK原创 2012-03-08 13:00:50 · 503 阅读 · 0 评论 -
渲染primitive
namespace MyGUI{ struct Vertex { void set(float _x, float _y, float _z, float _u, float _v, uint32 _colour) { x = _x; y = _y; z = _z; u = _u; v = _v; colour = _colour; }原创 2012-03-08 13:20:23 · 662 阅读 · 0 评论 -
RenderItem 渲染集中
typedef std::vector VectorDrawItem;而DrawItemInfo 为: typedef std::pair DrawItemInfo;这里明显看出ISubWidget为Widget的渲染信息单元RenderItem的数据结构: private:#if MYGUI_DEBUG_MODE == 1 std::string mTe原创 2012-03-08 13:24:07 · 2941 阅读 · 0 评论 -
SubWidget 之渲染
ISubWidget 的功用:对于渲染的对象,类似gof中的composite模式,将widget的子节点进行递归渲染从而使得构造起来方便,但是正如gof的composite 模式所属的缺点而言逻辑上有些搞不灵清,而且不知道叶子结点的。SubWidget的子类 virtual void createDrawItem(ITexture* _texture, IL原创 2012-03-06 19:09:50 · 756 阅读 · 0 评论 -
RTTI
MyGUI 运行时类是通过一系列宏做到的例如获得运行时类名:template+宏 #define MYGUI_DECLARE_TYPE_NAME( Type ) \ public: \ static const std::string& getClassTypeName() { static std::string type = #Type; return type; }原创 2012-03-14 12:28:29 · 648 阅读 · 0 评论 -
IResource
IResource class hierachy原创 2012-03-15 13:46:28 · 1355 阅读 · 0 评论 -
ResourceManager
ResourceManager 继承与ResourceHolder这难道就是传说中的模板偏特化?偏特化的IResource原创 2012-03-15 12:55:27 · 1154 阅读 · 0 评论 -
FactoryManager 主要管理控件创建的Delegate的注册Map
提到这个类我们不得不提及Template GenericManager下面对成员函数进行分析对于一个管理类的,它的操作总少不了对map成员变量的增删,(如果加入改查的话,可能manager的职能就太细了。manager这种paradim)值得介绍的应属对控件的创建: IObject* FactoryManager::createObject(const st原创 2012-03-14 19:16:06 · 703 阅读 · 0 评论 -
LayerManager 之渲染
LayerManager 渲染:1渲染是从Layer开始:逐层传递 void LayerManager::renderToTarget(IRenderTarget* _target, bool _update) { for (VectorLayer::iterator iter=mLayerNodes.begin(); iter!=mLayerNodes.end(); ++ite原创 2012-03-21 12:27:44 · 1007 阅读 · 0 评论