Skip to main content
GameDev.net gamedev.net
🔒 Locked

Curious CAPS

Started by Zaei Nov 13, 2001 at 6:55 PM 2 replies 700+ views
Original Post
Zaei
Zaei
I was browsing through my Caps viewer utility that came with the SDK, and came across two that werent defined in the documentation. Does anyone know what "D3DDEVCAPS_DRAWPRIMITIVES2" and "D3DDEVCAPS_DRAWPRIMITIVES2EX" are? the "EX" one is also supported in the refrast. Z.
__"Evil is Loud"
Remnex
Remnex
I checked MSDN, and it says that they aren''t documented.



------------------------------
"I''m a decorated astronaut, I don''t make those kind of mistakes."
"Oh now wait a minute. Look I''ll show ya. I''ll enter the same calculations using what we like to call ''The Right Way''."

-Rem
Zirem Software
------------------------------"I'm a decorated astronaut, I don't make those kind of mistakes.""Oh now wait a minute. Look I'll show ya. I'll enter the same calculations using what we like to call 'The Right Way'."-RemZirem Software
S1CA
S1CA
Those caps refer to what level of DirectX support the device driver has.

Back in the days of DirectX 5, there were two methods of talking to the graphics card driver with D3D: "Execute Buffers" (DX3 and below only did these) AND/OR "DrawPrimitive". Execute buffers have been obsolete since DirectX 6.

There used to be a cap (up until DX7) which let you to check whether the driver understood what DrawPrimitive was or whether it could only understand execute buffers. (Any driver which doesn't understand [edit] DrawPrimitive [/edit] was written in around 1995/96 - it's very old.). The name of the cap was something like D3DCAPS_DRAWPRIMITIVES.

Since the introduction of DrawPrimitive in DirectX 5, each major new version of DirectX has added new features to the vertex processing of D3D.

A rough guide:

D3DDEVCAPS_DRAWPRIMITIVES2 = Driver/Card knows about and can handle new vertex processing features (and some changes) added to DirectX 6. (e.g. texture coordinate matrices etc)

D3DDEVCAPS_DRAWPRIMITIVES2EX = Driver/Card knows about and can handle new vertex processing features (and changes) added to DirectX 7. (e.g. Flexibile Vertex format flags etc)


There is no need for a cap bit for DRAWPRIMITIVES 1 in DirectX 8 since a driver MUST support them for the card to be detected. The new minimum requirement for D3D hardware in DX8 is that it _must_ support DrawPrimitive.

Generally you shouldn't ever need to detect the DrawPrimitive level of the driver, the other caps should serve all practical purposes. AFAIK D3D does use those caps internally to decide what to pass down to the driver and what to handle themselves.

--
Simon O'Connor
Creative Asylum Ltd
www.creative-asylum.com


Edited by - S1CA on November 15, 2001 5:31:11 AM
Simon O'Connor | Technical Director (Newcastle) Lockwood Publishing | LinkedIn | Personal site
Zaei
Zaei
Thanks much! That pretty much clears that up.

Z.
__"Evil is Loud"

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.