请问在vc下用directdraw直接读取显存啊

huxiangyang4 2010-06-26 11:54:13
我想用个32位指针直接指向显存,然后读取每个像素的值,不知道应该怎么编程呢?谢谢大虾了!
...全文
299 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
showery 2011-09-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 huxiangyang4 的回复:]

很是谢谢你了,我刚才编了一段代码已经可以成功的写显存了,
我公司现在要做一个远程桌面控制,所以我只需要读当前桌面的像素值就可以了,然后通过socket发送出去,
我以前尝试过用getpixel函数,但是那个太慢了,后来在网上听说directdraw这种会比较快,所以打算用这个,你看我这个方法行吗?
[/Quote]
大哥,你怎么写的显存?
huxiangyang4 2010-06-27
  • 打赏
  • 举报
回复
很是谢谢你了,我刚才编了一段代码已经可以成功的写显存了,
我公司现在要做一个远程桌面控制,所以我只需要读当前桌面的像素值就可以了,然后通过socket发送出去,
我以前尝试过用getpixel函数,但是那个太慢了,后来在网上听说directdraw这种会比较快,所以打算用这个,你看我这个方法行吗?
jameshooo 2010-06-27
  • 打赏
  • 举报
回复
不要尝试读显存,通常只写显存,因为显存中的内容是不会人为改变的,在写入之前你就已经知道了。

在系统内存中创建缓冲表面只需要合适的创建参数即可,这是我用的一段代码,你可能不能直接用,但是能理解其意义:

CDDSURFACEDESC dds(DDSCAPS_OFFSCREENPLAIN /*| DDSCAPS_SYSTEMMEMORY*/, DDSD_PIXELFORMAT, cx, cy);
dds.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
dds.ddpfPixelFormat.dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
dds.ddpfPixelFormat.dwFourCC = 0;
dds.ddpfPixelFormat.dwRGBBitCount = 32;
dds.ddpfPixelFormat.dwRBitMask = 0x00ff0000;
dds.ddpfPixelFormat.dwGBitMask = 0x0000ff00;
dds.ddpfPixelFormat.dwBBitMask = 0x000000ff;
dds.ddpfPixelFormat.dwRGBAlphaBitMask = 0xff000000;
HRESULT hr = dd->CreateSurface(&dds, &_ddSurface.p, NULL);

huxiangyang4 2010-06-27
  • 打赏
  • 举报
回复
jameshooo:你有相关代码吗?我在网上找了很多创建缓冲表面的代码,但是读不出来显存的内容,我不想对显存写,我只想读,大侠能详述一下吗?
huxiangyang4 2010-06-26
  • 打赏
  • 举报
回复
那样会很慢的,我想直接对显存操作!
jbz001 2010-06-26
  • 打赏
  • 举报
回复
指向显存???
太神奇了~!
你应该用获取那个图形的句柄,然后再获取每个像素的值。
jameshooo 2010-06-26
  • 打赏
  • 举报
回复
通常不直接写显存,尤其不要读显存,很慢的,一般的做法是在系统内存中创建一个缓冲表面,然后直接操作这个缓冲表面的内存,操作完成后一次性blt到显存中。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧