本系列文章由jadeshu编写,转载请注明出处.http://blog.csdn.net/jadeshu/article/details/22446971 作者:jadeshu   邮箱: jadeshu@qq.com    欢迎邮件交流 分段机制 •分段提供了隔绝各个代码.数据和堆栈区域的机制,因此多个程序(或任务)可以运行在同一个处理器上而不会互相干扰. •在内存分段系统中,一个程序的逻辑地址通过分段机制自动地映射到中间层的4GB(232B)线性地址空间中.程序每次对内存的引用都是对内存段中…
本系列文章由jadeshu编写,转载请注明出处.http://blog.csdn.net/jadeshu/article/details/22448323 作者:jadeshu   邮箱: jadeshu@qq.com    欢迎邮件交流 •Windows在其内核(ntoskrnl.exe/ntkrnlpa.exe/ntkrnlmp.exe/ntkrpamp.exe)中实现内存管理器 •Windows内存管理器只利用两种保护级别的页面:RING0(内核和驱动使用)RING3(外壳和一般应用程序使…
本系列文章由jadeshu编写,转载请注明出处.http://blog.csdn.net/jadeshu/article/details/22445945 作者:jadeshu   邮箱: jadeshu@qq.com    欢迎邮件交流 CPU段式内存管理,逻辑地址转换为线性地址 CPU页式内存管理,线性地址转换成物理地址 目的:CPU进行地址变换(映射)的主要目的是为了解决虚拟内存空间到物理内存空间的映射问题.虚拟内存空间的含义是指一种利用二级或外部存储空间,使程序能不受实际物理内存量限制而…
本系列文章由jadeshu编写,转载请注明出处.http://blog.csdn.net/jadeshu/article/details/22309359 作者:jadeshu   邮箱: jadeshu@qq.com    欢迎邮件交流 X86实模式下 在实模式下,寻址一个内存地址主要是使用段和偏移值,段值被存放在段寄存器中(如ds),并且段的长度被固定为64KB.段内偏移地址存放在任意一个可用于寻址的寄存器中(如si).因此,根据段寄存器和偏移寄存器中的值,就可以算出实际指向的内存地址  X…
Windows游戏编程之从零开始d I'm back~~恩,几个月不见,大家还好吗? 这段时间真的好多童鞋在博客里留言说或者发邮件说浅墨你回来继续更新博客吧. woxiangnifrr童鞋说每天都在来浅墨的博客逛一下看有没有更新,"每天都来就像看女神那般不依不舍",弄得我再不更新都不好意思了,哈哈~怎么说呢,前段时间忙毕设,回国,暑假,间隔年旅行休整,然后是适应新的生活,各种事情,也真正没有心境来更新博客了,最近正好心境安定下来,就继续开始写博.额,关于思想汇报改天我专门写一篇文章和大…
第12章 Direct3D绘制基础 1. 顶点缓存 计算机所描绘的3D图形是通过多边形网格来构成的,网网格勾勒出轮廓,然后在网格轮廓的表面上贴上相应的图片,这样就构成了一个3D模型.三角形网格是构建物体模型的基本单元,而一个三角形有3个顶点,为了能够使用大量三角形组成三角形网格来描述物体,需要首先定义号三角形的顶点(Vertex),3个顶点确定一个三角形,顶点除了定义每个顶点的坐标位置外,还还含有颜色等其他属性. 在Direct3D中,顶点的具体表现形式是顶点缓存,顶点缓存保存了顶点数据的内存空…
本系列文章由jadeshu编写,转载请注明出处.http://blog.csdn.net/jadeshu/article/details/22449085 作者:jadeshu   邮箱: jadeshu@qq.com    欢迎邮件交流 一开始我们得大致了解一个程序的运行过程,运行时得先启动一个程序,如下启动过程 1.WIN32程序启动过程就是进程的创建过程,系统调用CreateProcess函数创建新的进程(当一个线程调用CreateProcess函数时,系统会创建一个进程内核对象,其使用计…
本系列文章由jadeshu编写,转载请注明出处.http://blog.csdn.net/jadeshu/article/details/22451353 作者:jadeshu   邮箱: jadeshu@qq.com    欢迎邮件交流 很快到第八小节了,前面部分些许晦涩难懂,尤其寄存器和内存几节!先有个概念,慢慢熟悉!接着按下面一节节的学习就行了 这节主要说下绘图基础相关的东西 绘制图形,我们平时在白纸上绘制个图形如一条直线就很简单,但在计算上实现确实很复杂的过程,学习它需要许多图形这块的知…
第7章 Windows游戏输入消息处理 1. 键盘消息处理 之前提到的窗口过程函数有两参数与消息输出有关——wParam和llParam LRESULT CALLBACK WindowProc( _In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam ); 当键盘消息触发时,wParam的值为按下按键的虚拟键码,lParam则存储按键的相关状态的信息,因此,如果要对键盘输入的消息进行处理,就可以用一个switc…
第5章 透明贴图 像这样直接贴图会产生这种情况,所以我们需要透明贴图. 透明遮罩法:主要利用BitBlt函数中Raser(光栅)值的运算,需要准备素材图和遮罩图: 这个方法的原理解释见书131页. 示例程序: #include <windows.h> #define WINDOW_WIDTH 800 //为窗口宽度定义的宏,以方便在此处修改窗口宽度 #define WINDOW_HEIGHT 600 //为窗口高度定义的宏,以方便在此处修改窗口高度 #define WINDOW_TITLE L…