1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef MOJO_APPS_JS_BINDINGS_GL_OPAQUE_H_ 6 #define MOJO_APPS_JS_BINDINGS_GL_OPAQUE_H_ 7 8 #include <GLES2/gl2.h> 9 10 #include "gin/handle.h" 11 #include "gin/public/wrapper_info.h" 12 #include "gin/wrappable.h" 13 #include "v8/include/v8.h" 14 15 namespace mojo { 16 namespace js { 17 namespace gl { 18 19 // WebGL has many interfaces, such as WebGLObject, WebGLBuffer, etc, which wrap 20 // integers that are opaque to script. This class is used for all those objects. 21 class Opaque : public gin::Wrappable<Opaque> { 22 public: 23 static gin::WrapperInfo kWrapperInfo; 24 25 static gin::Handle<Opaque> Create(v8::Isolate* isolate, GLuint value); 26 static v8::Handle<v8::ObjectTemplate> GetObjectTemplate(v8::Isolate* isolate); 27 28 GLuint value() const { return value_; } 29 void set_value(GLuint val) { value_ = val; } 30 31 private: 32 Opaque(GLuint value); 33 34 GLuint value_; 35 }; 36 37 } // namespace gl 38 } // namespace js 39 } // namespace mojo 40 41 #endif // MOJO_APPS_JS_BINDINGS_GL_CONTEXT_H_ 42