Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.6 KiB

  1. #ifndef __gludisplaylist_h_
  2. #define __gludisplaylist_h_
  3. /**************************************************************************
  4. * *
  5. * Copyright (C) 1992, Silicon Graphics, Inc. *
  6. * *
  7. * These coded instructions, statements, and computer programs contain *
  8. * unpublished proprietary information of Silicon Graphics, Inc., and *
  9. * are protected by Federal copyright law. They may not be disclosed *
  10. * to third parties or copied or duplicated in any form, in whole or *
  11. * in part, without the prior written consent of Silicon Graphics, Inc. *
  12. * *
  13. **************************************************************************/
  14. /*
  15. * displaylist.h - $Revision: 1.1 $
  16. * Derrick Burns - 1991
  17. */
  18. #include "glimport.h"
  19. #include "mysetjmp.h"
  20. #include "mystdio.h"
  21. #include "bufpool.h"
  22. class NurbsTessellator;
  23. typedef void (NurbsTessellator::*PFVS)( void * );
  24. struct Dlnode : public PooledObj {
  25. Dlnode( PFVS, void *, PFVS );
  26. PFVS work;
  27. void * arg;
  28. PFVS cleanup;
  29. Dlnode * next;
  30. };
  31. inline
  32. Dlnode::Dlnode( PFVS _work, void *_arg, PFVS _cleanup )
  33. {
  34. work = _work;
  35. arg = _arg;
  36. cleanup = _cleanup;
  37. }
  38. class DisplayList {
  39. public:
  40. DisplayList( NurbsTessellator * );
  41. ~DisplayList( void );
  42. void play( void );
  43. void append( PFVS work, void *arg, PFVS cleanup );
  44. void endList( void );
  45. private:
  46. Dlnode *nodes;
  47. Pool dlnodePool;
  48. Dlnode **lastNode;
  49. NurbsTessellator *nt;
  50. };
  51. #endif /* __gludisplaylist_h_ */