找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 11044|回复: 33

【然并卵】没有窗口的立方体

[复制链接]

1110

主题

1651

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
244
威望
743 点
宅币
24221 个
贡献
46222 次
宅之契约
0 份
在线时间
2296 小时
注册时间
2014-1-26
发表于 2015-7-23 06:07:14 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
laji.png
20150723060859.png
这也就是直接在屏幕上画一个旋转的立方体而已……至于说它的作用嘛,三个字:然并卵。
原理是使用DX的Dev->CreateOffscreenPlainSurface创建一个内存Surface,然后在每一帧的渲染中使用GetRenderTargetData将后台缓冲区中的数据移动到这个内存Surface里,最后使用内存Surface的GetDC取得HDC,并用这个HDC来更新分层窗体。
借助这个可以实现流畅、快速的DX截图、录屏、分层窗体渲染、界面渲染等各种特效,可以摆脱GDI+了。但用这种方式渲染界面的话对GPU、DX具有一定依赖性,不适用于服务器程序。
下载:
游客,如果您要查看本帖隐藏内容请回复


不过……是不是觉得这个立方体有点小呢?没错。你可以把它弄大一点(改const DWORD g_WndWidth和g_WndHeight,在Entry.c的开头)。它就会变得更大一些了。
回复

使用道具 举报

1110

主题

1651

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
244
威望
743 点
宅币
24221 个
贡献
46222 次
宅之契约
0 份
在线时间
2296 小时
注册时间
2014-1-26
 楼主| 发表于 2015-7-23 06:16:58 来自手机 | 显示全部楼层
不过正因为这样,你可以把它改成一个3D的小电子宠物,而且不用担心性能问题!(性能是个大问题!!你随便怎么画都很快,因为窗口就这么大。但是像素需要通过DMA从显存传到系统内存来供GDI使用,这简直慢成狗!)
回复 赞! 靠!

使用道具 举报

0

主题

1

回帖

1048

积分

用户组: 上·技术宅

UID
887
精华
0
威望
1 点
宅币
14 个
贡献
1031 次
宅之契约
0 份
在线时间
2 小时
注册时间
2015-5-30
发表于 2015-7-23 08:38:37 | 显示全部楼层
感谢楼主分享,顶贴支持~
回复 赞! 靠!

使用道具 举报

1

主题

14

回帖

5260

积分

用户组: 技术宅的结界VIP成员

UID
129
精华
0
威望
1 点
宅币
5083 个
贡献
160 次
宅之契约
0 份
在线时间
11 小时
注册时间
2014-3-18
发表于 2015-7-23 23:24:05 | 显示全部楼层
哈哈,尝试果然成功了,我玩玩看
回复 赞! 靠!

使用道具 举报

卡卡 该用户已被删除
发表于 2015-7-24 01:58:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 赞! 靠!

使用道具 举报

1110

主题

1651

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
244
威望
743 点
宅币
24221 个
贡献
46222 次
宅之契约
0 份
在线时间
2296 小时
注册时间
2014-1-26
 楼主| 发表于 2015-7-24 03:26:55 | 显示全部楼层
CCInt3 发表于 2015-7-23 23:24
哈哈,尝试果然成功了,我玩玩看

你的那个工程,也可以用这种方法,直接把信息用GDI打印到目标上,完全不必把信息变成纹理塞进去,还能很好地解决效率问题!
回复 赞! 靠!

使用道具 举报

85

主题

175

回帖

3990

积分

用户组: 超级版主

No. 418

UID
418
精华
14
威望
53 点
宅币
1974 个
贡献
1582 次
宅之契约
0 份
在线时间
252 小时
注册时间
2014-8-9
发表于 2015-7-24 17:33:07 | 显示全部楼层
并不然并卵呢,你可以做一个无窗体的3D魔方
In the beginning I was not the best.
And the world was also not the best.
But I still know that I am who I am.
Because I think that it is good.
I have been working hard.
I have been keeping growth with the world.
And it was so.
回复 赞! 靠!

使用道具 举报

1110

主题

1651

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
244
威望
743 点
宅币
24221 个
贡献
46222 次
宅之契约
0 份
在线时间
2296 小时
注册时间
2014-1-26
 楼主| 发表于 2015-7-24 18:57:02 | 显示全部楼层
cyycoish 发表于 2015-7-24 17:33
并不然并卵呢,你可以做一个无窗体的3D魔方


这东西就是然并卵。
回复 赞! 靠!

使用道具 举报

85

主题

175

回帖

3990

积分

用户组: 超级版主

No. 418

UID
418
精华
14
威望
53 点
宅币
1974 个
贡献
1582 次
宅之契约
0 份
在线时间
252 小时
注册时间
2014-8-9
发表于 2015-7-24 21:59:28 | 显示全部楼层
0xAA55 发表于 2015-7-24 18:57
这东西就是然并卵,它严重占用DMA。

有没有其他的方式实现类似“桌面宠物”而又比较Light呢?
In the beginning I was not the best.
And the world was also not the best.
But I still know that I am who I am.
Because I think that it is good.
I have been working hard.
I have been keeping growth with the world.
And it was so.
回复 赞! 靠!

使用道具 举报

1110

主题

1651

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
244
威望
743 点
宅币
24221 个
贡献
46222 次
宅之契约
0 份
在线时间
2296 小时
注册时间
2014-1-26
 楼主| 发表于 2015-7-25 07:10:23 | 显示全部楼层
cyycoish 发表于 2015-7-24 21:59
有没有其他的方式实现类似“桌面宠物”而又比较Light呢?

GDI、GDI+、透明分层窗口+glew
回复 赞! 靠!

使用道具 举报

0

主题

1

回帖

9

积分

用户组: 初·技术宅

UID
1140
精华
0
威望
0 点
宅币
8 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2015-9-23
发表于 2015-9-23 17:50:45 | 显示全部楼层
下载看卡~~
回复

使用道具 举报

0

主题

6

回帖

22

积分

用户组: 初·技术宅

UID
1142
精华
0
威望
0 点
宅币
16 个
贡献
0 次
宅之契约
0 份
在线时间
2 小时
注册时间
2015-9-23
发表于 2015-9-24 22:19:03 | 显示全部楼层
然并卵啊.............
回复

使用道具 举报

0

主题

18

回帖

5130

积分

用户组: 技术宅的结界VIP成员

UID
1183
精华
0
威望
1 点
宅币
5110 个
贡献
0 次
宅之契约
0 份
在线时间
21 小时
注册时间
2015-10-9
发表于 2015-10-9 18:58:33 | 显示全部楼层
看看                               。
回复 赞! 靠!

使用道具 举报

17

主题

28

回帖

590

积分

用户组: 大·技术宅

UID
140
精华
5
威望
30 点
宅币
440 个
贡献
26 次
宅之契约
0 份
在线时间
54 小时
注册时间
2014-3-22
发表于 2015-11-14 13:05:42 | 显示全部楼层
看一下。。。。
回复

使用道具 举报

0

主题

76

回帖

6758

积分

用户组: 真·技术宅

UID
604
精华
0
威望
2 点
宅币
825 个
贡献
5853 次
宅之契约
0 份
在线时间
101 小时
注册时间
2014-12-20
发表于 2015-11-15 09:53:46 | 显示全部楼层
前排学习
回复

使用道具 举报

0

主题

76

回帖

6758

积分

用户组: 真·技术宅

UID
604
精华
0
威望
2 点
宅币
825 个
贡献
5853 次
宅之契约
0 份
在线时间
101 小时
注册时间
2014-12-20
发表于 2015-11-15 09:55:05 | 显示全部楼层
单核直接满载...
回复 赞! 靠!

使用道具 举报

0

主题

70

回帖

164

积分

用户组: 小·技术宅

UID
1291
精华
0
威望
2 点
宅币
89 个
贡献
1 次
宅之契约
0 份
在线时间
2 小时
注册时间
2015-11-25
发表于 2015-11-25 16:52:45 | 显示全部楼层
然并卵
回复

使用道具 举报

2

主题

12

回帖

76

积分

用户组: 小·技术宅

UID
1432
精华
0
威望
2 点
宅币
58 个
贡献
0 次
宅之契约
0 份
在线时间
8 小时
注册时间
2016-1-21
发表于 2016-1-23 12:51:47 | 显示全部楼层
支持一个。。。。
回复

使用道具 举报

0

主题

5

回帖

38

积分

用户组: 初·技术宅

UID
1433
精华
0
威望
2 点
宅币
29 个
贡献
0 次
宅之契约
0 份
在线时间
4 小时
注册时间
2016-1-21
发表于 2016-2-2 14:57:51 | 显示全部楼层
个人感觉挺牛逼呢。。
回复 赞! 靠!

使用道具 举报

1110

主题

1651

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
244
威望
743 点
宅币
24221 个
贡献
46222 次
宅之契约
0 份
在线时间
2296 小时
注册时间
2014-1-26
 楼主| 发表于 2016-5-16 08:29:53 | 显示全部楼层
帖子已更新。感谢大家的关注。
更新后已经解决了卡顿的问题——其实之前是每次都让CPU等GPU把渲染流程做完再把数据传回RAM,这个过程很慢所以会卡。
用了新的方法以后它就很流畅了。原理其实是让GPU把之前渲染好的现成的数据传回RAM,这样就不用等待渲染队列了。
回复 赞! 靠!

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-4-18 17:58 , Processed in 0.054695 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表