摘要:
获取DC 1. 附带裁剪区域的DC获取方法,借助InvalidateRect()扩展无效矩形hdc = BeginPaint (hwnd, &ps) ;EndPaint (hwnd, &ps) ;InvalidateRect (hwnd, NULL, TRUE) ;2. 没有裁剪区域的DC获取方法,同时也不会让无效矩形变为有效,借助ValidateRect()更新有效矩形hdc = GetDC (... 阅读全文
摘要:
包含头文件 "windows.h", 这是一个巨大的文件 如果只用到了API中的一部分,那么在包含头文件之前,定义 , #define WIN32_LEAN_AND_MEAN 定义下面的宏, #define VC_EXTRALEAN 可以关掉更多的东西, 详情参考: Faster Builds and Smaller Header Files。 阅读全文
摘要:
这个框架是一个相对成熟的渲染引擎的上层框架,通常也可以会叫做 Scene - View。 在QT中,GraphicsView是一个与QWdiget系列一点点不一样的系统。这个系统主要由下面几个框架类构成:QGraphicsView, QGraphicsScene, QGraphicsItem QGrahpicsView是从原生的QWidget继承过来,QGraphics-View系统中,他承... 阅读全文
摘要:
下面对于QT的绘制系统做一个简要说明, 这个系统主要由三部分组成, QPainter, QPaintDevice, QPaintEngine。 QPainter 是一个绘制接口类,提供绘制各种面向用户的命令,而QPaintDevice 是一个QPainter绘制的目的地,相当于画布, 而QPaintEngine 是基本绘制命令的具体实现。 我们打交道比较多的是 QPainter , 注意对于Win... 阅读全文
摘要:
QT4.4以后的版本(包括4.4) QT的Scene布局系统,主要构成如下图所示: QGraphicsWidget 通过 QGraphicsWidget::setLayout() 来绑定 QGraphicsLayout 当 Widget 发生 resized 事件的时候,layout自动对widget的孩子进行相应的排列。 因为 QGraphicsLayout 是从 QGraphicsLa... 阅读全文
摘要:
总体来说,当前4.7 版本中的 AnchorLayout 还不甚完善(AnchorLayout 是从QT4.6引入的),不过主体功能已经完成。 从上述类图中可以看出,AnchorLayout 与其他的布局类有个区别,AnchorLayout没有依赖QGridLayoutEngine,所以可以知道AnchorLayout的排版工作是自己负责的。进一步观察发现,布局中引入了两个类 AnchorDat... 阅读全文
摘要:
另外一个强大的布局排版类,QGraphicsGridLayout 提供在Graphic view 中对widget 进行格子布局管理的功能。 通常用parent=NULL的方式在堆上构建QGraphicsGridLayout (也就是 QGraphicsGridLayout * layout = newQGraphicsGridLayout (NULL) ), 然后通过调用接口addItem()... 阅读全文
摘要:
概述:通过前面对QGraphicsLinearLayout, QGraphicsGridLayout , QGraphicsAnchorLayout的初步分析,可以知道,QT的布局引擎分成两个: QGraphicsLayoutEngine 负责对 QGraphicsLinearLayout, QGraphicsGridLayout 进行排版。QGraphicsAnchorLayoutPrivate... 阅读全文
摘要:
QT 的Scene-View系统中的LinearLayout 相当于原来的 HBoxLayout 和 VBoxLayout,用来处理横行排版和竖向排版。 类继承图如下(由QT4.4版本引入): QGraphicsLinearLayout处理Qt::Horizontal和Qt::Vertical两个方向的排版布局,默认为Qt::Horizontal,可以通过调用接口setOrientation()... 阅读全文
摘要:
第一章 Qt 初步实践 集成开发环境: KDevelop , vim 第二章 对话框 Q_OBJECT 启动Qt元对象系统的一些特性,比如支持信号与槽等,它必须防止到类定义的私有区。 QDialog 类的虚函数 virtual void accept(), 验证对话框的返回值。 QLineEdit::setEchoMode(), 设置编辑框对象的内容显示方式,Normal, Pas... 阅读全文
摘要:
rigid body dynamics and simulation(刚体动力学仿真) lagrange multiplier velocity based model (拉格朗日乘数速度模型) Trinkle/Stewart and Anitescu/Potra joint (关节点): ball, hinge, slider first order integrator(一阶积分) Conta... 阅读全文
摘要:
模板类是一个编译链接期间才实例化的类。只有用到才实例化。标准没有支持对模板类的导出,从另外一种意义上来说,模板类的实现全部放在头文件中,也就不需要导出了。但是对于一些特别情况。模板类中有静态变量和函数。这个时候DLL中使用的,以及和其他链接这个DLL的模块他们是使用的两份拷贝。 比如, 在DLL中这样使用: T * pDLL = Singlton<T>::Get(); 然后再链接这个DLL的exe... 阅读全文
摘要:
CRT:C Run-Time Library, C 语言运行时库。 由来: 1) 运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数. 2) C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritchie ... 阅读全文
摘要:
C++的链接性质,也就是translation unit的作用范围。 在C中,给全局变量,函数,加上 static,表示当前函数和变量的linkage 为 internal,这样,就可以在不同的unit 中定义同名的函数和变量了。但是,加了static 的函数和变量就不用作为模板费类型参数了。(模板的非类型参数,必须是编译期确定的,exterl 性质的,整形常量或者指针常量) 在C++中,我们希... 阅读全文
摘要:
几种函数调用方式 __cdecl 是C DECLaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。返回值在EAX中。 _stdcall 是StandardCall的缩写,是C++的标准调用... 阅读全文
摘要:
The _ReturnAddress intrinsic provides the address of the instruction in the calling function that will be executed after control returns to the caller. 返回调用当前函数的,下一个控制权获得者的指令. 如下列伪代码: function A() ad... 阅读全文
摘要:
1. 是指数据,包括数据文件,执行指令等,在二进制上100%一致。 2. 是指一个可执行文件,可以在不同的硬件平台上运行。 微软做了一个,Thunking ,解决 2: 会损失一点性能。 具体的设置思路是 : 阅读全文
摘要:
最近经常听到这个名词,以前也听到过,不过接触更多的是“线程安全问题”,而且本人也一直理解的是两个名字的含义是一样的。今天仔细总结一下这个名词相关的概念。 引用博文:可重入函数和不可重入函数 (http://www.cppblog.com/franksunny/archive/2007/08/03/29269.html) 主要用于多任务环境中, 一个可重入的函数简单来说就是可以被中断的函数,也... 阅读全文
摘要:
XUL : xml user interface language DHTML : dynamic html 百科名片 (http://baike.baidu.com/view/8389.htm) DHTML是Dynamic HTML的简称,就是动态的html,是相对传统的静态的html而言的一种制作网页的概念。所谓动态HTML(Dynamic HTML,简称DHTML),其实并不是一门新的语言,... 阅读全文
摘要:
[Nebula3 帧渲染Frame系统] [补充说明 .fx 文件] 这里简要说明一下 fx 文件, fx 文件是渲染管线的配置文件, 主要由三部分组成:变量声明,管道状态technique, pass,渲染函数, 1. 变量声明在文件开始,这些变量可以在运行时操作,格式如下, type id : tag = {initiliaze value} ; 其中 type 必须是 H... 阅读全文