Archived

This topic is now archived and is closed to further replies.

Curious CAPS

This topic is 5877 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites