游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7605|回复: 17

[求助]请问怎么不用GDI或者DX来显示图像~?~汇编或C/C++都

[复制链接]

5

主题

26

帖子

31

积分

注册会员

Rank: 2

积分
31
发表于 2007-5-2 01:26:00 | 显示全部楼层 |阅读模式
RT~
看见大家都说用汇编来优化图像引擎~
可是怎么不用GDI或者DX来作2D图形处理呢?~

那个SURFACE的结构~DC的结构完全不明啊……
拜托哪个大大给解释一下吧~
谢谢了!~

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2007-5-2 23:31:00 | 显示全部楼层

Re:[求助]请问怎么不用GDI或者DX来显示图像~?~汇编或C/C++

。。。。。。。。。。。。。。。。
你把很多概念都搞混了

5

主题

26

帖子

31

积分

注册会员

Rank: 2

积分
31
 楼主| 发表于 2007-5-3 00:16:00 | 显示全部楼层

Re:[求助]请问怎么不用GDI或者DX来显示图像~?~汇编或C/C++

我是很多概念都完全不知道……所以才想问嘛~……

6

主题

99

帖子

99

积分

注册会员

Rank: 2

积分
99
发表于 2007-5-3 23:19:00 | 显示全部楼层

Re:[求助]请问怎么不用GDI或者DX来显示图像~?~汇编或C/C++

没人能帮你,概念得自己找资料弄懂。
其实也不很难。
DC:device context,设备上下文,windows为了设备无关而使用的,gdi中画图常用
surface:可以说是一个图像容器
……
说不清,只是大概,靠你自己……

5

主题

26

帖子

31

积分

注册会员

Rank: 2

积分
31
 楼主| 发表于 2007-5-4 01:41:00 | 显示全部楼层

Re:[求助]请问怎么不用GDI或者DX来显示图像~?~汇编或C/C++

……

那么……
能否给个不用GDI或者DX的显示图像的示例代码呢?~什么语言的都可以~
谢谢了的说!~

34

主题

629

帖子

629

积分

高级会员

Rank: 4

积分
629
发表于 2007-5-4 15:06:00 | 显示全部楼层

Re:[求助]请问怎么不用GDI或者DX来显示图像~?~汇编或C/C++

只是告诉你用汇编优化,谁说可以不用DX了
你听说的应该是DirectDraw时代,现在汇编不能优化图形处理了,只能优化数学计算方面,显卡上的汇编叫shader

5

主题

26

帖子

31

积分

注册会员

Rank: 2

积分
31
 楼主| 发表于 2007-5-4 21:23:00 | 显示全部楼层

Re:[求助]请问怎么不用GDI或者DX来显示图像~?~汇编或C/C++

那2D时代的是怎么做的呢?~…………

5

主题

26

帖子

31

积分

注册会员

Rank: 2

积分
31
 楼主| 发表于 2007-5-4 22:06:00 | 显示全部楼层

Re:[求助]请问怎么不用GDI或者DX来显示图像~?~汇编或C/C++

要不这么问吧~

如何不用GDI函数或者DX只用汇编或别的啥做到以下呢?~

1,怎样得到一个在内存中的SURFACE的图像的指针?~
2,怎样对显存进行操作?~怎么把图像放入显存?~
3,怎样将一个在内存中的图像显示到屏幕上?~

尤其是第一点~如何实现啊?~2,3点不能不用那些做到也就算了……

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
发表于 2007-5-4 23:06:00 | 显示全部楼层

Re:[求助]请问怎么不用GDI或者DX来显示图像~?~汇编或C/C++

用汇编显示一个矩形,按END键退出,编译器:MASM5.0。

.386p
.387
sj segment use16
jxbz db ?
;........
lan db ?
lv db ?
hong db ?
;.............
jxceng dw ?
jxdi dw ?
jxsi dw ?
jxbx dw ?
jxchang dw ?
jxkuan dw ?
jxhong db ?
jxlan db ?
jxlv db ?
;..........
cxx dw ?
all db ?
;..........
sj ends
dz segment stack use16
dz ends
dm segment use16
assume cs:dm,ds:sj,ss:dz
ks:
mov ax,sj
mov ds,ax
mov ax,4f02h
mov bx,112h
int 6dh
mov ax,0a000h
mov es,ax
;~~~~~~~~~~~~~~~~~~~~~~~~
mov jxbz,0
mov jxhong,132d
mov jxlv,234d
mov jxlan,22d
mov jxceng,4
mov jxchang,450d
mov jxkuan,33d
mov jxdi,1200d
mov jxsi,1201d
mov jxbx,1202d
call juxing

jmp tc





;<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
;jxceng,jxchang,jxkuan,jxdi,jxsi,jxbx,jxlan,jxhong,jxlv,jxx,jxy
juxing:
mov dx,jxceng
mov ax,4f05h
xor bx,bx
int 10h
mov di,jxdi
mov si,jxsi
mov bx,jxbx
mov al,jxlan
mov ah,jxlv
mov dl,jxhong
mov cx,jxchang
jx1:
mov es:[di],al
mov es:[si],ah
mov es:[bx],dl
;inc al
;inc ah
mov all,al
add di,3
add si,3
add bx,3
jc jx11
loop jx1
jmp jx2
jx11:
mov cxx,cx
inc jxceng
mov dx,jxceng
mov ax,4f05h
xor bx,bx
int 10h
mov al,jxlv
mov ah,jxhong
mov dl,all
mov di,0
mov si,1
mov bx,2
mov cx,cxx
dec cx
jx12:
mov es:[di],al
mov es:[si],ah
mov es:[bx],dl
add di,3
add si,3
add bx,3
inc dl
loop jx12
jx2:
add jxdi,1920d
add jxsi,1920d
add jxbx,1920d
cmp jxbz,1
jz jxcs2
add jxlan,13d
jnc jxcs
mov jxbz,1
jxcs2:
sub jxlan,13d
jxcs:
mov al,jxlan
mov ah,jxlv
mov dl,jxhong
mov di,jxdi
mov si,jxsi
mov bx,jxbx
dec jxkuan
mov cx,jxchang
cmp jxkuan,0
jnz jx1
ret
;...........
tc:
mov al,20h
out 64h,al
in al,60h
cmp al,4fh
jnz tc
tc1:
mov ax,4c00h
int 21h
dm ends
end ks

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
发表于 2007-5-4 23:11:00 | 显示全部楼层

Re:[求助]请问怎么不用GDI或者DX来显示图像~?~汇编或C/C++

请问楼主:为什么不用GDI或者DX来显示图象?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 13:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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