webappmanager
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RemoteWindowDataSoftwareOpenGLComposited.h
Go to the documentation of this file.
1 /* @@@LICENSE
2 *
3 * Copyright (c) 2010-2012 Hewlett-Packard Development Company, L.P.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 * LICENSE@@@ */
18 
19 
20 
21 
22 #ifndef REMOTEWINDOWDATASOFTWAREOPENGLCOMPOSITED_H_
23 #define REMOTEWINDOWDATASOFTWAREOPENGLCOMPOSITED_H_
24 
25 #include <PGLESContext.h>
26 #include <WebGLES2Context.h>
27 
28 #include "RemoteWindowDataSoftware.h"
29 #include "NAppWindow.h"
30 
31 class PGLES2Context;
32 class PGLESPixmap;
33 
35 public:
36  RemoteWindowDataSoftwareOpenGLComposited (int width, int height, bool hasAlpha, bool createIpcBuffer = true);
38  virtual Palm::WebGLES2Context* getGLES2Context();
39  virtual bool directRenderingAllowed(bool val);
40  virtual bool isDirectRendering();
41  virtual void translate(int x, int y);
42  virtual void rotate(int degrees);
43  virtual void flip();
44 
45  virtual void sendCompositedTextureUpdate(int x, int y, int w, int h);
46 
47 protected:
49 };
50 
51 namespace Palm {
52  class WebGLES2Context;
53  class WebView;
54 }
55 
56 class PGLES2Context: public Palm::WebGLES2Context {
57 public:
58 
60  virtual ~PGLES2Context();
61  virtual bool initialize(Palm::WebView* view, WebGLES2Context* parent);
62  virtual void enableDirectRendering(bool val);
63  virtual bool isDirectRendering();
64  virtual bool makeCurrent();
65  virtual bool destroy();
66  virtual bool swapBuffers();
67  virtual void translate(int x, int y);
68  virtual void getTranslation(int& x, int& y);
69  virtual void getScreenWidthAndHeight(int& width, int& height);
70  virtual void rotate(int degrees);
71  virtual int getRotation();
72  virtual void recreateTexture();
73  virtual void reshape(int width, int height);
74  virtual void resizeWindow(int width, int height);
75  virtual PGLESPixmap* getOffscreenContentParentTextureId();
76  virtual PGLESContext2D* getPGLESContext();
77 
78 protected:
79 
80  virtual bool renderOffscreen();
81  virtual bool renderOnScreen();
82  virtual void createWindow(int width, int height);
83  virtual bool setDisplay();
84  virtual void setToCurrent();
85  PGLESContext2D* context();
86 
87  Palm::WebView* m_view;
88  Palm::WebGLES2Context* m_parent;
89  PGLESPixmap* m_glPixmap;
90  NAppWindow* m_nappWindow;
92  int m_xOffset;
93  int m_yOffset;
95 };
96 #endif /* REMOTEWINDOWDATASOFTWAREOPENGLCOMPOSITED_H_ */