webappmanager
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RemoteWindowDataSoftwareQt.h
Go to the documentation of this file.
1 
18 #ifndef REMOTEWINDOWDATASOFTWARE_H
19 #define REMOTEWINDOWDATASOFTWARE_H
20 
21 #include "Common.h"
22 #include "RemoteWindowData.h"
23 #include "Logging.h"
24 
25 class QPainter;
26 class QImage;
27 class PIpcBuffer;
28 
30 {
31 public:
32 
33  RemoteWindowDataSoftwareQt(int width, int height, bool hasAlpha, bool createIpcBuffer=true);
35 
36  virtual int key() const;
37  virtual int width() const { return m_width; }
38  virtual int height() const { return m_height; }
39  virtual bool hasAlpha() const { return m_hasAlpha; }
40  virtual bool needsClear() const { return false; }
41  virtual void setWindowMetaDataBuffer(PIpcBuffer* metaDataBuffer);
42  virtual void flip();
43 
44  virtual PGContext* renderingContext() { return 0; }
45  virtual QPainter* qtRenderingContext();
46 
47  virtual void beginPaint();
48  virtual void endPaint(bool preserveOnFlip, const QRect& rect, bool flipBuffers = true);
49  virtual void sendWindowUpdate(int x, int y, int w, int h);
50 
51  virtual bool hasDirectRendering() const;
52  virtual bool directRenderingAllowed(bool val);
53 
54  virtual void resize(int newWidth, int newHeight);
55  virtual void clear();
56  virtual bool supportsPartialUpdates() const { return false; }
57 protected:
58 
59  virtual void lock();
60  virtual void unlock();
61  virtual void* data();
62  virtual int calcPitch(int width);
63 
64  PIpcBuffer* m_ipcBuffer;
65  int m_width;
66  int m_height;
67  int m_pitch;
68  bool m_hasAlpha;
69 
70  QPainter* m_context;
71  QImage* m_surface;
74 
75  friend class WindowedWebApp;
76 
77 private:
78 
81 };
82 
83 #endif /* REMOTEWINDOWDATASOFTWARE_H */