On Mon, Mar 10, 2003 at 10:23:07PM +0000, José Fonseca wrote:

 > struct function_table {
 >   ...
 >   void (*BlendFunc)(GLcontext *ctx, GLenum sfactor, GLenum dfactor);
 >   ...
 > } driver;
 > 
 > and
 > 
 > class Context {
 >   ...
 >   void BlendFunc(GLenum sfactor, GLenum dfactor);
 >   ...
 > } ;
 > 
 > You can't simply do
 > 
 >   driver.BlendFunc = Context::BlendFunc;

 No, you can't do that.  The problem is not the rhs as you seem to think
 but the lhs.  The rhs needs to be &Context::BlendFunc.  What type does
 that have?  void (Context::*BlendFunc)(GLcontext *ctx, ...)

 > As I said above this can be done in C++, and without damage to
 > efficiency.

 I doubt that.  (JFTR, if I'm given the choice of programming in C++ or
 C, I'll pick C++.  I'm really not being a C zealot)

 > class TNL {
 >   // A OpenGL function
 >   virtual void Coord3f(GLfloat x, GLfloat y, GLfloat z) = 0;

     ^^^^^^^
     pure virtual method.  Depending on what you want to do with this,
     this will incur in a function call overhead, inline or not.

 Marcelo


-------------------------------------------------------
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

Reply via email to