Ian Romanick wrote:
> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
> Roland Scheidegger wrote:
>> So, when trying to implement ARB_point_parameters and
>> ARB_point_sprite, I came across some problem (this tnl stuff is
>> hard to follow). The problem is, I need to set some hardware state
>> dependant on the primitive being renderered (in particular, r200
>> needs perspective correction disabled for point sprites, as
>> otherwise the tex coord interpolator will wreak havoc with the
>> (hw-generated) point sprite texture coordinates). Obviously, this
>> should only be disabled when actually rendering points. However, if
>> there are no state changes between a glEnd and glBegin command, no
>> usual state validation will happen. Am I missing something, or is
>> it more or less impossible to emit state depending on the
> I thought there was a mechanism that allowed the driver to be
> notified at glBegin (or similar) time. It seems like you ought to be
> able to emit some extra state at that time to change to / from
> point-sprite mode.
Ah, sounds like a plan. I thought the NotifyBegin would only be useful
for vtxfmt-replace like things. I'll look into that.
>> Same problem also exists for sw tcl - additionally there we'd want
>> to change the vertex format (for point parameters attenuation), as
>> it's highly inefficient to submit per-vertex point size if we
>> aren't drawing points...
> You might be able to do this in the begin-notify routine also.
> Alternately, you could add an extra pipeline stage that does the
> required tweaking.
I hope the NotifyBegin should be enough.