摘要: 优化很多时候是必要的,特别对于瓶颈程序。这里讨论一段代码的优化过程,从而演示一段简单的代码优化过程,并希望得到一些建议。先描述一下需求:一个16位数的序列,将其奇数位置放到一个序列,偶数问题放到另外一个序列。注意奇数和偶数序列的长度不一定相同。最简单的代码:1voidCTestClass::SplitToEvenOddSeqs(short*sp,short*dp1,short*dp2,inteve... 阅读全文
posted @ 2010-09-24 16:02 oayx 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 程序员当然要说代码了,代码是程序员的一切,离了代码说其他都是假的,我这里从一段代码开始。intc=0,n=0,nDiff=0;intheight=m_imgHeight;//imageheightLPBYTElpDsp=pSampling;jp2_int16*sp,val;LPBYTEdest;//m_imgWidth-imagewidthnDiff=m_lineBytes-m_imgWidth*... 阅读全文
posted @ 2010-09-24 16:01 oayx 阅读(1573) 评论(0) 推荐(0) 编辑
摘要: 在 C/C++ 语言中,函数是如何被调用的呢?本文就实际的例子,走进汇编代码来看下函数调用的过程。 首先看一个简单的代码例子: void test(int i) { int j = i; } void test1() { } int test2() { return 1; } void test3(int a,int b,int c) { } void test4() { int ... 阅读全文
posted @ 2010-09-24 15:59 oayx 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 微软D3D设备能创建和操纵下面初基类型:l 点列表l 线列表l 线带l 三角形列表l 三角形带l 三角形扇区你能用IDirect3DDevice9接口中的任何粉刷方法在C++程序中粉刷原基。1.1.1.1. 点列表一个点列表是一个顶点的集合,这些顶点被作为单独的点来粉刷。你的程序可以在3-D场景中用它们作为在多边形表面上开始字段、点线。下图描述了一个粉刷后的点列表。你的程序能在一个点列表上应用素材... 阅读全文
posted @ 2010-09-24 15:57 oayx 阅读(1290) 评论(0) 推荐(0) 编辑
摘要: D3D设备是D3D的粉刷组件;它封装并存储粉刷的状态,另外,D3D设备执行转换和光操作,并光栅化一个图像到一个面上。本节主要包括内容:1. 设备类型2. 创建设备3. 选择设备4. 不为人知的设备5. 决定硬件支持6. 处理顶点数据7. 设备支持的初基类型按照架构来说,D3D设备包含一个转换模块、一个光模块、一个光栅化模块;如下图所示:D3D当前支持两种主要类型的D3D设备:带硬件加速的光栅化以及... 阅读全文
posted @ 2010-09-24 15:56 oayx 阅读(2434) 评论(1) 推荐(0) 编辑
摘要: 使用微软的D3D来编程需要熟悉3D几何原理。本节介绍建立3D世界的最重要的几何概念。1.1.1. 3-D坐标系统典型的3D图形程序使用两种笛卡儿坐标系统:左手和右手。两个坐标系统中,正X轴指向右边,正Y轴指向上。你可以通过你左右手指间指向与正X轴相同时大拇指指向的方向来记住坐标方向。下图描述了这两种系统。微软的D3D使用左手系统,如果你正在将一个基于右手坐标系统的程序导入到程序中,你必须做两个改变... 阅读全文
posted @ 2010-09-24 15:55 oayx 阅读(4022) 评论(0) 推荐(0) 编辑
摘要: 1. D3D入门本节提供一个对D3D图形编程接口(API)的简短介绍。这里你将发现一个图形管道的概貌以及帮助你实现基本D3D功能的指南。1.1. D3D架构本节包含Microsoft的D3D组件、其他Microsoft DirectX、操作系统和系统硬件之间的关系;下面将讨论这些主题。1.1.1. D3D的架构概览这是一个图形管道的描述。每个块的功能性在下面介绍,连接包含更多的信息。更多关于D3D... 阅读全文
posted @ 2010-09-24 15:53 oayx 阅读(1583) 评论(0) 推荐(0) 编辑
摘要: 一, 为什么要跨平台? 你想过把你的 Windows 上编写的程序在 Linux 编译运行吗,以及在 Mac 或其他 OS 上运行等等?反过来也一样?这就需要涉及到跨平台编程知识。这里需要注意的是,平时很多在一个平台运行的程序在跨平台的时候变的不再正确。 Java 并非真的是跨平台的开发环境,它是运行在它自己的平台上。这里主要关注 C 和 C++ 的跨平台开发。 下面主要就几个方面来讨论跨平台编程... 阅读全文
posted @ 2010-09-24 15:52 oayx 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 使用FreeType实现矢量字体的粗体、斜体、描边、阴影效果前言:Freetype是一个跨平台、开源的字体渲染器,网上很多文章介绍,本人就不啰嗦了。本文重点在于实现文章标题所属的各种效果,不是Freetype的基本使用方法介绍文档,所以对于Freetype不熟悉的同学们请先学习下Freetype的基本用法,才可以使用本文中所提及的方法。正文:用FreeType实现矢量字体的粗体、斜体、描边、阴影效... 阅读全文
posted @ 2010-09-24 15:50 oayx 阅读(2684) 评论(0) 推荐(0) 编辑
摘要: 引言:  编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。第1招:以空间换时间  计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招——以空间换时间。例如:字符串的赋值。方法A,通常的办法:#define LEN 32char strin... 阅读全文
posted @ 2010-09-24 15:48 oayx 阅读(376) 评论(0) 推荐(0) 编辑