|
@@ -0,0 +1,46 @@
|
|
|
|
|
+
|
|
|
|
|
+#include "PolycodeWebView.h"
|
|
|
|
|
+
|
|
|
|
|
+PolycodeWebView::PolycodeWebView(unsigned int width, unsigned int height, String url) {
|
|
|
|
|
+
|
|
|
|
|
+ this->width = width;
|
|
|
|
|
+ this->height = height;
|
|
|
|
|
+
|
|
|
|
|
+ char *testData = (char*)malloc(width*height*4);
|
|
|
|
|
+ renderTexture = CoreServices::getInstance()->getMaterialManager()->createTexture(width, height, (char*)testData, false, Image::IMAGE_RGBA);
|
|
|
|
|
+ delete testData;
|
|
|
|
|
+
|
|
|
|
|
+ webCore = new Awesomium::WebCore();
|
|
|
|
|
+ webView = webCore->createWebView(width, height);
|
|
|
|
|
+
|
|
|
|
|
+ webView->loadURL(url.c_str());
|
|
|
|
|
+ webView->focus();
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+PolycodeWebView::~PolycodeWebView() {
|
|
|
|
|
+ webView->destroy();
|
|
|
|
|
+ delete webCore;
|
|
|
|
|
+ delete renderTexture;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void PolycodeWebView::Update() {
|
|
|
|
|
+ webCore->update();
|
|
|
|
|
+ if(webView->isDirty()) {
|
|
|
|
|
+ const Awesomium::RenderBuffer* renderBuffer = webView->render();
|
|
|
|
|
+ if(renderBuffer) {
|
|
|
|
|
+ char *dest = (char*)malloc(width*height*4);
|
|
|
|
|
+ renderBuffer->copyTo((unsigned char*)dest, width * 4, 4, true, true);
|
|
|
|
|
+
|
|
|
|
|
+ Image *newImage = new Image(dest, width, height, Image::IMAGE_RGBA);
|
|
|
|
|
+ renderTexture->setImageData(newImage);
|
|
|
|
|
+ renderTexture->recreateFromImageData();
|
|
|
|
|
+ delete newImage;
|
|
|
|
|
+ delete dest;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+Texture *PolycodeWebView::getRenderTexture() {
|
|
|
|
|
+ return renderTexture;
|
|
|
|
|
+}
|
|
|
|
|
+
|