home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 19 / AACD19.BIN / AACD / Programming / MCC_GLArea / MCC_GLArea_Dev / Include / mui / GLArea_mcc.h
Encoding:
C/C++ Source or Header  |  2000-12-28  |  4.3 KB  |  104 lines

  1. /*-------------------------------------------------
  2.   Name: GLArea_mcc.h
  3.   Version: 0.9
  4.   Date: 26.12.2000
  5.   Author: Bodmer Stephan [sbodmer@lsi-media.ch]
  6.   Note: MUI Custom class GLArea
  7.     EGCS port
  8. ---------------------------------------------------*/
  9. #ifndef MUI_GLArea_MCC_H
  10. #define MUI_GLArea_MCC_H
  11.  
  12. #include <GL/Amigamesa.h>
  13.  
  14. //--------------------------------------------------------
  15. // This struct is always passed as argument to
  16. // each GL function (DrawFunc,InitFunc,MouseUpFunc,etc...)
  17. //--------------------------------------------------------
  18. struct GLContext {
  19.     //--- StormMesa context ---
  20.     AmigaMesaContext context;
  21.     struct Library *gl_Base;
  22.     struct Library *glu_Base;
  23.     struct Library *glut_Base;
  24.     
  25.     //--- Debug output file handle ---
  26.     // If you use the GLArea_debug.mcc, fh is not NULL and you
  27.     // could FPrintf(fh,"..") some information
  28.     ULONG fh;
  29.  
  30.     //--- Corresponding GLArea object and app ---
  31.     // You could use MUI macro _app to find the application too
  32.     APTR glarea;
  33.     APTR app;
  34.  
  35.     //--- For futur use
  36.     APTR spare;
  37. };
  38.  
  39. //--- Macros ---
  40. #define MUIC_GLArea "GLArea.mcc"
  41. #define GLAreaObject MUI_NewObject(MUIC_GLArea
  42.  
  43. //--- GL function prototypes ---
  44. typedef int (*PF) (struct GLContext *glcontext); // return 1 (TRUE), if stopped with sig SIGBREAKF_CTRL_D
  45. typedef void (*PFD) (int, int, struct GLContext *glcontext);
  46.  
  47. //-------------------------------------------------------------------------
  48. // Tag values
  49. // First: 0x0001
  50. // Last : 0x003B
  51. //------------------------------------------------------------------------
  52. #define MUI_SERIAL (0xfec4<<16)
  53.  
  54. #define MUIA_GLArea_MinWidth        (TAG_USER | MUI_SERIAL | 0x0001)
  55. #define MUIA_GLArea_MaxWidth        (TAG_USER | MUI_SERIAL | 0x0002)
  56. #define MUIA_GLArea_MinHeight       (TAG_USER | MUI_SERIAL | 0x0003)
  57. #define MUIA_GLArea_MaxHeight       (TAG_USER | MUI_SERIAL | 0x0004)
  58. #define MUIA_GLArea_DefWidth        (TAG_USER | MUI_SERIAL | 0x0005)
  59. #define MUIA_GLArea_DefHeight       (TAG_USER | MUI_SERIAL | 0x0006)
  60. #define MUIA_GLArea_Buffered        (TAG_USER | MUI_SERIAL | 0x0007)
  61. #define MUIA_GLArea_DeltaX          (TAG_USER | MUI_SERIAL | 0x0008)
  62. #define MUIA_GLArea_DeltaY          (TAG_USER | MUI_SERIAL | 0x0009)
  63. #define MUIA_GLArea_Active          (TAG_USER | MUI_SERIAL | 0x000a)
  64. #define MUIA_GLArea_FullScreen      (TAG_USER | MUI_SERIAL | 0x000b)
  65. #define MUIA_GLArea_Priority        (TAG_USER | MUI_SERIAL | 0x0039)
  66. #define MUIA_GLArea_Threaded        (TAG_USER | MUI_SERIAL | 0x000c)
  67. #define MUIA_GLArea_Status          (TAG_USER | MUI_SERIAL | 0x000d)
  68. #define MUIA_GLArea_Context         (TAG_USER | MUI_SERIAL | 0x000e)
  69. #define MUIA_GLArea_glBase          (TAG_USER | MUI_SERIAL | 0x000f)
  70. #define MUIA_GLArea_gluBase         (TAG_USER | MUI_SERIAL | 0x0010)
  71. #define MUIA_GLArea_glutBase        (TAG_USER | MUI_SERIAL | 0x0011)
  72. #define MUIA_GLArea_SingleTask      (TAG_USER | MUI_SERIAL | 0x0012)
  73. #define MUIA_GLArea_MsgHeight       (TAG_USER | MUI_SERIAL | 0x003B)
  74.  
  75. #define MUIA_GLArea_DrawFunc        (TAG_USER | MUI_SERIAL | 0x0013)
  76. #define MUIA_GLArea_DrawFunc2       (TAG_USER | MUI_SERIAL | 0x0014)
  77. #define MUIA_GLArea_DrawPostFunc    (TAG_USER | MUI_SERIAL | 0x0015)
  78. #define MUIA_GLArea_ResetFunc       (TAG_USER | MUI_SERIAL | 0x0016)
  79. #define MUIA_GLArea_InitFunc        (TAG_USER | MUI_SERIAL | 0x0017)
  80. #define MUIA_GLArea_MouseDownFunc   (TAG_USER | MUI_SERIAL | 0x0018)
  81. #define MUIA_GLArea_MouseMoveFunc   (TAG_USER | MUI_SERIAL | 0x0019)
  82. #define MUIA_GLArea_MouseUpFunc     (TAG_USER | MUI_SERIAL | 0x001a)
  83.  
  84. #define MUIM_GLArea_Break           (TAG_USER | MUI_SERIAL | 0x0020)
  85. #define MUIM_GLArea_DrawImage       (TAG_USER | MUI_SERIAL | 0x0034)
  86. #define MUIM_GLArea_DrawThisFunc    (TAG_USER | MUI_SERIAL | 0x0024)
  87. #define MUIM_GLArea_Init            (TAG_USER | MUI_SERIAL | 0x0028)
  88. #define MUIM_GLArea_MakeCurrent     (TAG_USER | MUI_SERIAL | 0x002c)
  89. #define MUIM_GLArea_Redraw          (TAG_USER | MUI_SERIAL | 0x002d)
  90. #define MUIM_GLArea_Refresh         (TAG_USER | MUI_SERIAL | 0x002e)
  91. #define MUIM_GLArea_Reset           (TAG_USER | MUI_SERIAL | 0x002f)
  92. #define MUIM_GLArea                 (TAG_USER | MUI_SERIAL | 0x0033)
  93. #define MUIM_GLArea_Swap            (TAG_USER | MUI_SERIAL | 0x0031)
  94.  
  95. //--- Special values  ---
  96. #define MUIV_GLArea_InitFunc_Standard -1
  97.  
  98. // Object status
  99. #define MUIV_GLArea_Ready       100
  100. #define MUIV_GLArea_Busy        110
  101. #define MUIV_GLArea_NotActive   120
  102.  
  103. #endif
  104.