gdkgldrawable.inc 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. { Original file is /usr/include/gtkglext-1.0/gdk/gdkgldrawable.h
  2. Michalis comments: note that GdkGLDrawable is an interface,
  3. not a class, so
  4. - it's GDK_GL_DRAWABLE_GET_CLASS is implemented using
  5. GDK_GL_DRAWABLE_GET_INTERFACE instead of GDK_GL_DRAWABLE_GET_CLASS
  6. - 1st field of class record is
  7. base_iface: TGTypeInterface;
  8. instead of
  9. parent_class: TGObjectClass;
  10. - Also (this is of course minor thing that does not affect
  11. code using this unit, but still it is preserved in this translation
  12. of C headers to Pascal) names of params of macros are vtable and inst.
  13. }
  14. {$ifdef read_interface_types}
  15. { PGdkGLDrawable already defined in gdkgltypes.inc }
  16. TGdkGLDrawable = record
  17. parent_instance: TGObject;
  18. end;
  19. PGdkGLDrawableClass = ^TGdkGLDrawableClass;
  20. TGdkGLDrawableClass = record
  21. base_iface: TGTypeInterface;
  22. create_new_context: function(
  23. gldrawable: PGdkGLDrawable;
  24. share_list: PGdkGLContext;
  25. direct: gboolean;
  26. render_type: LongInt): PGdkGLContext; cdecl;
  27. make_context_current: function(
  28. draw: PGdkGLDrawable;
  29. a_read: PGdkGLDrawable;
  30. glcontext: PGdkGLContext): gboolean; cdecl;
  31. is_double_buffered: function(gldrawable: PGdkGLDrawable): gboolean; cdecl;
  32. swap_buffers: procedure(gldrawable: PGdkGLDrawable); cdecl;
  33. wait_gl: procedure(gldrawable: PGdkGLDrawable); cdecl;
  34. wait_gdk: procedure(gldrawable: PGdkGLDrawable); cdecl;
  35. gl_begin: function(
  36. draw: PGdkGLDrawable;
  37. a_read: PGdkGLDrawable;
  38. glcontext: PGdkGLContext): gboolean; cdecl;
  39. gl_end: procedure(gldrawable: PGdkGLDrawable); cdecl;
  40. get_gl_config: function(gldrawable: PGdkGLDrawable): PGdkGLConfig; cdecl;
  41. get_size: procedure(
  42. gldrawable: PGdkGLDrawable;
  43. width, height: PGInt); cdecl;
  44. end;
  45. {$endif read_interface_types}
  46. {$ifdef read_interface_rest}
  47. function GDK_TYPE_GL_DRAWABLE: GType;
  48. function GDK_GL_DRAWABLE(inst: Pointer): PGdkGLDrawable;
  49. function GDK_GL_DRAWABLE_CLASS(vtable: Pointer): PGdkGLDrawableClass;
  50. function GDK_IS_GL_DRAWABLE(inst: Pointer): boolean;
  51. function GDK_IS_GL_DRAWABLE_CLASS(vtable: Pointer): boolean;
  52. function GDK_GL_DRAWABLE_GET_CLASS(inst: Pointer): PGdkGLDrawableClass;
  53. function gdk_gl_drawable_get_type: GType;
  54. cdecl; external GdkGLExtLib;
  55. function gdk_gl_drawable_make_current(
  56. gldrawable: PGdkGLDrawable;
  57. glcontext: PGdkGLContext)
  58. : gboolean;
  59. cdecl; external GdkGLExtLib;
  60. function gdk_gl_drawable_is_double_buffered(
  61. gldrawable: PGdkGLDrawable)
  62. : gboolean;
  63. cdecl; external GdkGLExtLib;
  64. procedure gdk_gl_drawable_swap_buffers(
  65. gldrawable: PGdkGLDrawable);
  66. cdecl; external GdkGLExtLib;
  67. procedure gdk_gl_drawable_wait_gl(
  68. gldrawable: PGdkGLDrawable);
  69. cdecl; external GdkGLExtLib;
  70. procedure gdk_gl_drawable_wait_gdk(
  71. gldrawable: PGdkGLDrawable);
  72. cdecl; external GdkGLExtLib;
  73. function gdk_gl_drawable_gl_begin(
  74. gldrawable: PGdkGLDrawable;
  75. glcontext: PGdkGLContext)
  76. : gboolean;
  77. cdecl; external GdkGLExtLib;
  78. procedure gdk_gl_drawable_gl_end(
  79. gldrawable: PGdkGLDrawable);
  80. cdecl; external GdkGLExtLib;
  81. function gdk_gl_drawable_get_gl_config(
  82. gldrawable: PGdkGLDrawable)
  83. : PGdkGLConfig;
  84. cdecl; external GdkGLExtLib;
  85. procedure gdk_gl_drawable_get_size(
  86. gldrawable: PGdkGLDrawable;
  87. width, height: PGInt);
  88. cdecl; external GdkGLExtLib;
  89. function gdk_gl_drawable_get_current
  90. : PGdkGLDrawable;
  91. cdecl; external GdkGLExtLib;
  92. {$endif read_interface_rest}
  93. {$ifdef read_implementation}
  94. function GDK_TYPE_GL_DRAWABLE: GType;
  95. begin
  96. GDK_TYPE_GL_DRAWABLE := gdk_gl_drawable_get_type;
  97. end;
  98. function GDK_GL_DRAWABLE(inst: Pointer): PGdkGLDrawable;
  99. begin
  100. GDK_GL_DRAWABLE := PGdkGLDrawable(
  101. G_TYPE_CHECK_INSTANCE_CAST(inst, GDK_TYPE_GL_DRAWABLE));
  102. end;
  103. function GDK_GL_DRAWABLE_CLASS(vtable: Pointer): PGdkGLDrawableClass;
  104. begin
  105. GDK_GL_DRAWABLE_CLASS := PGdkGLDrawableClass(
  106. G_TYPE_CHECK_CLASS_CAST(vtable, GDK_TYPE_GL_DRAWABLE));
  107. end;
  108. function GDK_IS_GL_DRAWABLE(inst: Pointer): boolean;
  109. begin
  110. GDK_IS_GL_DRAWABLE := G_TYPE_CHECK_INSTANCE_TYPE(inst, GDK_TYPE_GL_DRAWABLE);
  111. end;
  112. function GDK_IS_GL_DRAWABLE_CLASS(vtable: Pointer): boolean;
  113. begin
  114. GDK_IS_GL_DRAWABLE_CLASS := G_TYPE_CHECK_CLASS_TYPE(vtable, GDK_TYPE_GL_DRAWABLE);
  115. end;
  116. function GDK_GL_DRAWABLE_GET_CLASS(inst: Pointer): PGdkGLDrawableClass;
  117. begin
  118. GDK_GL_DRAWABLE_GET_CLASS := PGdkGLDrawableClass(
  119. G_TYPE_INSTANCE_GET_INTERFACE(inst, GDK_TYPE_GL_DRAWABLE));
  120. end;
  121. {$endif read_implementation}