Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(597)

Unified Diff: mojo/apps/js/main.js

Issue 111083005: Beginning of JS Mojo API to GL (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: make windows link? Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/apps/js/bindings/threading.cc ('k') | mojo/apps/js/mojo_runner_delegate.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/apps/js/main.js
diff --git a/mojo/apps/js/main.js b/mojo/apps/js/main.js
index 1dd5ff871f108aa5734a3d507330cb2c5f463664..88115ffacaced518a6cd0def8cb311ed8298acf1 100644
--- a/mojo/apps/js/main.js
+++ b/mojo/apps/js/main.js
@@ -6,19 +6,33 @@ define([
"console",
"mojo/apps/js/bindings/connector",
"mojo/apps/js/bindings/core",
+ "mojo/apps/js/bindings/gl",
"mojo/apps/js/bindings/threading",
"mojom/native_viewport",
"mojom/gles2",
], function(console,
connector,
core,
+ gljs,
threading,
nativeViewport,
gles2) {
+ const VERTEX_SHADER_SOURCE =
+ "uniform mat4 u_mvpMatrix; \n" +
+ "attribute vec4 a_position; \n" +
+ "void main() \n" +
+ "{ \n" +
+ " gl_Position = u_mvpMatrix * a_position; \n" +
+ "} \n";
+
function NativeViewportClientImpl() {
}
+ // TODO(aa): It is a bummer to need this stub object in JavaScript. We should
+ // have a 'client' object that contains both the sending and receiving bits of
+ // the client side of the interface. Since JS is loosely typed, we do not need
+ // a separate base class to inherit from to receive callbacks.
NativeViewportClientImpl.prototype =
Object.create(nativeViewport.NativeViewportClientStub.prototype);
@@ -26,6 +40,7 @@ define([
console.log("NativeViewportClientImpl.prototype.DidOpen");
};
+
function GLES2ClientImpl() {
}
@@ -36,25 +51,27 @@ define([
width,
height) {
console.log("GLES2ClientImpl.prototype.didCreateContext");
- // Need to call MojoGLES2MakeCurrent(encoded) in C++.
- // TODO(abarth): Should we handle some of this GL setup in C++?
+ var gl = new gljs.Context(encoded, width, height);
+
+ var shader = gl.createShader(gl.VERTEX_SHADER);
+ console.log("shader is: ", String(shader));
+ gl.shaderSource(shader, VERTEX_SHADER_SOURCE);
+ gl.compileShader(shader);
+ console.log("all done");
};
GLES2ClientImpl.prototype.contextLost = function() {
console.log("GLES2ClientImpl.prototype.contextLost");
};
- var nativeViewportConnection = null;
- var gles2Connection = null;
-
return function(handle) {
- nativeViewportConnection = new connector.Connection(
+ var nativeViewportConnection = new connector.Connection(
handle,
NativeViewportClientImpl,
nativeViewport.NativeViewportProxy);
var gles2Handles = core.createMessagePipe();
- gles2Connection = new connector.Connection(
+ var gles2Connection = new connector.Connection(
gles2Handles.handle0, GLES2ClientImpl, gles2.GLES2Proxy);
nativeViewportConnection.remote.open();
« no previous file with comments | « mojo/apps/js/bindings/threading.cc ('k') | mojo/apps/js/mojo_runner_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698