- 博客(10)
- 资源 (19)
- 收藏
- 关注
原创 Ogre中的Smart Pointers——SharedPtr
<br />看一下Ogre里面的ShagedPtr,其实就是一个Smart Pointers。下面的代码是删去了原有注释的。现不谈里面的MUTEX。#ifndef __SharedPtr_H__#define __SharedPtr_H__#include "OgrePrerequisites.h"namespace Ogre { template<class T> class SharedPtr { protected: T* pRep;
2010-11-30 15:44:00 1419
原创 Ogre实现的Singleton——设计模式
Ogre实现的Singleton——设计模式Singleton就是保证一个类只有一个实例,在Ogre里面有很多Singleton的例子,几乎所有的Manager都是Singleton的实例。比较下Gof里面的Singleton的实现和loki中的Singleton的实现,Ogre的Singleton算是比较简单的。Gof中实现一般是把类的构造函数给Private了然后再加上static的变量和函数实现的。下面来具体看一下Ogre中的Singleton#ifndef _SINGLETON_H__#defi
2010-11-30 15:39:00 1604
原创 转:N多计算机精品免费视频下载
N多计算机精品免费视频下载<br />《VC知识库5周年精华珍藏版》<br />http://www.ibeifeng.com/read.php?tid=592&u=83<br />C语言经典算法100例(强烈推荐)<br />http://www.ibeifeng.com/read.php?tid=1334&u=83<br />《C++程序调试实用手册》(DeBUGGING C++)<br />http://www.ibeifeng.com/read.php?tid=587&u=83<br />【0614
2010-11-23 11:10:00 945
原创 遮挡查询 OpenGL超级宝典 第十七章
<br />void DrawModels(void){ GLint r, g, b; if (occlusionDetection || showBoundingVolume) { // Draw bounding boxes after drawing the main occluder DrawOccluder(); // All we care about for bounding box is resu
2010-11-15 16:07:00 2285
原创 template用法
<br />-- template 的用法<br />在程序设计当中经常会出现使用同种数据结构的不同实例的情况。例如:在一个程序中 <br />可以使用多个队列、树、图等结构来组织数据。同种结构的不同实例,也许只在数据元素 <br />的类型或数量上略有差异,如果对每个实例都重新定义,则非常麻烦且容易出错。那么能 <br />否对同种类型数据结构仅定义一次呢?答案是肯定的,C++提供的类模板(Class Template <br />)就可以实现该功能。 <br /><br />一、类模板 <br />类模
2010-11-10 17:33:00 6824
原创 std::tr1::function
使用std::tr1::function对象代替虑函数在 C++的TR1中(Technology Report)中包含一个function模板类和bind模板函数,使用它们可以实现类似函数指针的功能,但却却比函数指针更加灵活,特别是函数指向类的非静态成员函数时。可以参考Scott Meyers. >. Item 35.下面具体说明其使用方法。1. 指向全局函数或静态成员函数时 因为在本质上讲全局函数和静态成员函数没有区别,使用方法上除了静态成员函数在引用时要在前面加域作用符className::
2010-11-10 11:17:00 9398
原创 从固定图形管线到可编程流处理器
<br />计算机图形系统的发展以提供更快的图形数据处理和更真实的视觉效果为目标!<br /><br />基于光栅化(Rasterization)图形管线如图-2所示,图中下部虚线部分数据流向代表固定图形管线。应用程序通过点、线、多边形等几何图元构建出物理模型或可视化的数据结构,这些模型最后表示成具有对象空间坐标、法向量、颜色、纹理坐标等属性的顶点集(Vertex)。对顶点进行坐标变换、光照计算后,图元装配和光栅化操作对几何图元进行纹理和颜色的插值,生成和窗口屏幕像素相对应的片元集(Fragment)。片元
2010-11-08 16:15:00 842
原创 动态加载DLL的方法与注意的问题
<br /> 加载DLL的方法主要有两种:一种是隐式链接,另外一种是动态加载。 隐式链接会把DLL中所有标志为_declspec(dllexport)的函数都加载,如果有多个DLL加载时,可能会影响到程序执行的效率。而用动态加载DLL的方式则可以根据需要去加载用到的函数。 动态加载DLL的方法: 1.把生成的.DLL文件复制到测试工程DLLTest目录下。这里假设该.DLL文件为add.dll,主要代码是:_declspec(dllexport) int add(int x, int y)
2010-11-06 10:09:00 1669
原创 DLL 重定位
<br />DLL 重定位在32位代码中,涉及到直接寻址的指令都是需要重定位的(而在DOS的16位代码中,只有涉及到段操作的指令才是需要重定位的,对此有兴趣的读者可以参考 相关的资料),对于操作系统来说,其任务就是在对可执行程序透明的情况下完成重定位操作,在现实中,重定位信息是在编译的时候由编译器生成并被保留 在可执行文件中的,在程序被执行前由操作系统根据重定位信息修正代码,这样在开发程序的时候就不用考虑重定位问题了。 <br /><br />重定位信息在DLL文件中被存放在重定位表中 <br />
2010-11-06 10:08:00 4135 1
原创 typedef用法小结
摘要 typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。<br /><br />第一、四个用途<br />用途一:<br />定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:<br />char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,
2010-11-04 11:15:00 537
Directable,High-Resolution Simulation o fFire on the GPU
2010-12-27
图形处理器架构(GPU_Architecture)与图形管线(Graphics_Pipeline)入门
2010-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人