游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4427|回复: 7

关于硬件光标的实现问题。。

[复制链接]

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2011-6-14 14:27:00 | 显示全部楼层 |阅读模式
魔兽世界用的好像就是硬件光标,即画面帧率再低,甚至卡死,光标的移动也丝毫不受影响。
类似的、天下2也好像用的是硬件光标。
我查了下相关信息,好像得用Win32的LoadCursorFromFile()函数来加载光标,而且必须是cur或ani格式
那这样的话,魔兽世界用的也是cur或者ani格式的光标?或者说硬件光标都是用cur或ani的格式实现的?
各位有用过的么?? [em24]

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20515
发表于 2011-6-14 14:54:00 | 显示全部楼层

Re:关于硬件光标的实现问题。。

你说的这个解决方案是通过修改windows的光标来实现,另外还可以自己管理鼠标,如开创个线程负责对鼠标进行渲染管理。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-6-14 15:07:00 | 显示全部楼层

Re: Re:关于硬件光标的实现问题。。

sea_bug: Re:关于硬件光标的实现问题。。

你说的这个解决方案是通过修改windows的光标来实现,另外还可以自己管理鼠标,如开创个线程负责对鼠标进行渲染管理。


1:修改windows的光标?能解释下么?
2:多线程渲染真不知道怎么实现,我用的是DX9,BeginScene()、EndScene()和Present()函数都在主线程,这恐怕不好拆开。

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20515
发表于 2011-6-14 16:18:00 | 显示全部楼层

Re:关于硬件光标的实现问题。。

windows的,无非就是LoadCursorFromFile,SetCursor之类,把系统的光标在进入游戏窗口的时候设置成自己的,让它看起来跟游戏风格匹配。

多线程我还不了解3D渲染下怎么搞,以前做2D是会相对简单些,lock主表面,把光标图像写进去。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-6-14 16:31:00 | 显示全部楼层

Re: Re:关于硬件光标的实现问题。。

sea_bug: Re:关于硬件光标的实现问题。。

windows的,无非就是LoadCursorFromFile,SetCursor之类,把系统的光标在进入游戏窗口的时候设置成自己的,...


DX9不支持多线程渲染,好像到DX11才支持,这个看来无望了。
那就是只能用LoadCursorFromFile()来加载了,并且必须是32×32的图片

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2011-6-15 10:09:00 | 显示全部楼层

Re:关于硬件光标的实现问题。。

默认的光标就是硬件光标吧?

如果要用软件光标,那就得用 ShowCursor(false); 然后自己再用一个 Spirit 或 Polygon 贴图渲染的吧?

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2011-6-15 11:25:00 | 显示全部楼层

Re:关于硬件光标的实现问题。。

最简单的方法就是注册窗口类时在WNDCLASS里的hCursor填上自己的鼠标指针(LoadCursor得到的句柄),这样当鼠标移动到窗口上时系统会自动帮你显示成你定义的鼠标指针.

8

主题

22

帖子

28

积分

注册会员

Rank: 2

积分
28
发表于 2011-6-24 21:27:00 | 显示全部楼层

Re: 关于硬件光标的实现问题。。

估计你说的利用硬件光标应该是指利用windows api来改变鼠标图案,direct10以后都集成到api立了,msdn里面看了自定义cur文档,感觉要做到游戏里漂亮的鼠标不太可能。

其实你可以给鼠标处理单独的线程来做。我想魔兽里面游戏卡不是因为pc资源被用完了卡,因此不会影响鼠标的线程。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 07:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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