Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef _glview_h_
  2. #define _glview_h_
  3.  
  4. #define BGL_RGB           0
  5. #define BGL_INDEX         1
  6. #define BGL_SINGLE        0
  7. #define BGL_DOUBLE        2
  8. #define BGL_DIRECT        0
  9. #define BGL_INDIRECT      4
  10. #define BGL_ACCUM         8
  11. #define BGL_ALPHA        16
  12. #define BGL_DEPTH        32
  13. #define BGL_OVERLAY      64
  14. #define BGL_UNDERLAY    128
  15. #define BGL_STENCIL     512
  16.  
  17. #include <interface/View.h>
  18. #include <support/Locker.h>
  19. #include <GL/gl.h>
  20. #include <GL/oscontext.h>
  21. #include <game/WindowScreen.h>
  22. #include <game/DirectWindow.h>
  23.  
  24. class BGLView : public BView {
  25. public:
  26.   BGLView(BRect rect, char *name,
  27.           ulong resizingMode, ulong mode,
  28.           ulong options);
  29.   virtual ~BGLView();
  30.  
  31.   void LockGL();
  32.   void UnlockGL();
  33.   void SwapBuffers();
  34. //  BView *EmbeddedView();
  35. //  status_t CopyPixelsOut(BPoint source, BBitmap *dest);
  36. //  status_t CopyPixelsIn(BBitmap *source, BPoint dest);
  37.  
  38.   virtual void ErrorCallback(GLenum errorCode);
  39.   virtual void Draw(BRect updateRect);
  40.   virtual void AttachedToWindow();
  41.   virtual void AllAttached();
  42.   virtual void DetachedFromWindow();
  43.   virtual void AllDetached();
  44.   virtual void FrameResized(float width, float height);
  45. //  virtual status_t Perform(perform_code d, void *arg);
  46.  
  47.   //
  48.   // Methods below are pass-throughs to BView for the moment.
  49.   //
  50.  
  51.   virtual status_t Archive(BMessage *data, bool deep = true) const;
  52.   virtual void MessageReceived(BMessage *msg);
  53.   virtual void SetResizingMode(uint32 mode);
  54.  
  55.   virtual void Show();
  56.   virtual void Hide();
  57.  
  58.   virtual BHandler *ResolveSpecifier(BMessage *msg, int32 index,
  59.                                                                  BMessage *specifier, int32 form,
  60.                                                                  const char *property);
  61.   virtual status_t GetSupportedSuites(BMessage *data);
  62.   //void DirectConnected( direct_buffer_info *info );
  63.   //void EnableDirectMode( bool enabled );
  64.  
  65. private:
  66.   ostgl_context *context;
  67.   BBitmap *bitmaps[2];
  68.   int currBitmap;
  69.   static BLocker locker;
  70. };
  71.  
  72. #endif // _glview_h_
  73.