From: Ian R. <id...@us...> - 2003-06-23 15:00:06
|
Jacek Pop=B3awski wrote: > I am trying to understand DRI source, now from start, i.e. from OpenGL = calls. >=20 > I was analizing file: lib/GL/glx/g_render.c, if I understand correctly = there is > stream build there, but where it's readed? >=20 > For example in glColor3f there is identifier: X_GLrop_Color3fv. I grep = whole > DRI source and can't find where it's used. So how stream decoder knows = which > opcode is it? >=20 > I was browsing documentation on dri.sf.net, but I am unable to find ans= wer for > my question:=20 > "which functions in hardware driver (like lib/GL/mesa/src/drv/r200) are= called > for given GL call?". There are a couple levels of indirection that you're not seeing here.=20 There is a set of "stub" functions for each GL call that redirect to=20 either direct rendering functions (supplied by the DRI driver) or the=20 indirect rendering functions (what you see in lib/GL/glx). In the case of the direct rendering functions, the actual function that=20 gets called by the stub can be changed at virtually any time depending=20 on the GL state. For the indirect functions, the opcode processing is done by the X=20 server. That's what makes them indirect. :) Look in=20 programs/Xserver/GL/glx to see how that is done. Notice that there is=20 two versions of everything. This is to handle the case where the X=20 server and the client have a different byte-ordering (i.e., the X server=20 is on x86 and the client is on PowerPC). |