On Mon, Mar 10, 2003 at 10:36:21PM +0000, Keith Whitwell wrote:
No, because one of the things C++ does is pass around an extra parameter -- namely the 'self' pointer. The 'real' prototype looks something like:
void Context::BlendFunc( Context *self, GLenum sfactor, GLenum dfactor )
I know this, that's why I thought there could be a remote chance to make it work, as the arguments mostly match, i.e., ctx = self.
-- but there's no guarentee that this is actually what is happening, or that it won't change. Yes, I know there is an ABI now -- but I've no idea what it actually specifies.
That's my doubt too.
As I said above this can be done in C++, and without damage to efficiency.
Except that the functions plugged into the dispatch table cannot be C++ methods, as the prototypes are defined, and don't include the magic C++ self pointer.
But the function I put in the table _was_ an ordinary function, and not a C++ method, and no redirection call would take place with inlining. That was the point of the explanation...
I've deleted the rest of your explanation as unfortunately I don't think it can be made to work.
I've deleted the rest of your comment as unfortunately I don't agree with any of it. But I've read it.
Fair enough. I missed your point.
Keith
------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel