mirror of
https://github.com/alibaba/GCanvas.git
synced 2025-12-08 17:36:42 +00:00
516 lines
26 KiB
C++
516 lines
26 KiB
C++
#ifndef CONTEXTWEBGL_H
|
|
#define CONTEXTWEBGL_H
|
|
#include <napi.h>
|
|
#include "GRenderContext.h"
|
|
|
|
|
|
#define GL_UNPACK_FLIP_Y_WEBGL 0x9240
|
|
#define GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL 0x9241
|
|
#define GL_UNPACK_COLORSPACE_CONVERSION_WEBGL 0x9243
|
|
|
|
#define DEFINE_CONST_PROPERY_GET_FUNCTION(propertyName) \
|
|
Napi::Value get##propertyName(const Napi::CallbackInfo &info) \
|
|
{ \
|
|
return Napi::Number::New(info.Env(), GL_##propertyName); \
|
|
}
|
|
|
|
#define CHECK_PARAM_LEGNTH(length) NodeBinding::checkArgs(info, length)
|
|
|
|
#define BINDING_CONST_PROPERY(propertyName) \
|
|
InstanceAccessor(#propertyName, &ContextWebGL::get##propertyName, nullptr)
|
|
|
|
#define BINDING_OBJECT_METHOD(methodName) \
|
|
InstanceMethod(#methodName, &ContextWebGL::methodName)
|
|
|
|
#define DECLARE_VOID_BINDING_METHOD(methodName) \
|
|
void methodName(const Napi::CallbackInfo &info);
|
|
|
|
#define DECLARE_RET_VALUE_BINDING_METHOD(methodName) \
|
|
Napi::Value methodName(const Napi::CallbackInfo &info);
|
|
|
|
namespace NodeBinding
|
|
{
|
|
typedef void (*glUniformFloatPtr)(GLint location, GLsizei count, const GLfloat *value);
|
|
typedef void (*glUniformIntPtr)(GLint location, GLsizei count, const GLint *value);
|
|
typedef void (*glUniformMatrixPtr)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
|
typedef void (*glVeterxFloatPtr)(GLuint index, const GLfloat *value);
|
|
class ContextWebGL : public Napi::ObjectWrap<ContextWebGL>
|
|
{
|
|
public:
|
|
static void Init(Napi::Env env);
|
|
ContextWebGL(const Napi::CallbackInfo &info);
|
|
static Napi::Object NewInstance(Napi::Env env);
|
|
virtual ~ContextWebGL();
|
|
void inline setRenderContext(std::shared_ptr<GRenderContext> renderContext)
|
|
{
|
|
mRenderContext = renderContext;
|
|
}
|
|
|
|
private:
|
|
void clear(const Napi::CallbackInfo &info);
|
|
void clearColor(const Napi::CallbackInfo &info);
|
|
void enable(const Napi::CallbackInfo &info);
|
|
void bindBuffer(const Napi::CallbackInfo &info);
|
|
void bufferData(const Napi::CallbackInfo &info);
|
|
Napi::Value createBuffer(const Napi::CallbackInfo &info);
|
|
Napi::Value createShader(const Napi::CallbackInfo &info);
|
|
void shaderSource(const Napi::CallbackInfo &info);
|
|
void compileShader(const Napi::CallbackInfo &info);
|
|
Napi::Value createProgram(const Napi::CallbackInfo &info);
|
|
void attachShader(const Napi::CallbackInfo &info);
|
|
void linkProgram(const Napi::CallbackInfo &info);
|
|
void useProgram(const Napi::CallbackInfo &info);
|
|
Napi::Value getAttribLocation(const Napi::CallbackInfo &info);
|
|
void viewport(const Napi::CallbackInfo &info);
|
|
void drawElements(const Napi::CallbackInfo &info);
|
|
void drawArrays(const Napi::CallbackInfo &info);
|
|
void flush(const Napi::CallbackInfo &info);
|
|
void finish(const Napi::CallbackInfo &info);
|
|
void vertexAttribPointer(const Napi::CallbackInfo &info);
|
|
void enableVertexAttribArray(const Napi::CallbackInfo &info);
|
|
void scissor(const Napi::CallbackInfo &info);
|
|
Napi::Value getShaderParameter(const Napi::CallbackInfo &info);
|
|
Napi::Value getShaderInfoLog(const Napi::CallbackInfo &info);
|
|
void deleteShader(const Napi::CallbackInfo &info);
|
|
Napi::Value getProgramParameter(const Napi::CallbackInfo &info);
|
|
void deleteProgram(const Napi::CallbackInfo &info);
|
|
Napi::Value getUniformLocation(const Napi::CallbackInfo &info);
|
|
DECLARE_VOID_BINDING_METHOD(pixelStorei)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(createTexture)
|
|
DECLARE_VOID_BINDING_METHOD(bindTexture)
|
|
DECLARE_VOID_BINDING_METHOD(uniform1f)
|
|
DECLARE_VOID_BINDING_METHOD(uniform2f)
|
|
DECLARE_VOID_BINDING_METHOD(texParameteri)
|
|
DECLARE_VOID_BINDING_METHOD(texParameterf)
|
|
DECLARE_VOID_BINDING_METHOD(texImage2D)
|
|
DECLARE_VOID_BINDING_METHOD(stencilFunc)
|
|
DECLARE_VOID_BINDING_METHOD(stencilOp)
|
|
DECLARE_VOID_BINDING_METHOD(stencilMask)
|
|
DECLARE_VOID_BINDING_METHOD(activeTexture)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(createFrameBuffer)
|
|
DECLARE_VOID_BINDING_METHOD(bindFramebuffer)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(checkFramebufferStatus)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(isFramebuffer)
|
|
DECLARE_VOID_BINDING_METHOD(framebufferRenderbuffer)
|
|
DECLARE_VOID_BINDING_METHOD(framebufferTexture2D)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(createRenderBuffer)
|
|
DECLARE_VOID_BINDING_METHOD(deleteFrameBuffer)
|
|
DECLARE_VOID_BINDING_METHOD(deleteRenderBuffer)
|
|
DECLARE_VOID_BINDING_METHOD(deleteTexture)
|
|
DECLARE_VOID_BINDING_METHOD(deleteBuffer)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(isBuffer)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(getBufferParameter)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(isTexture)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(isShader)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(isProgram)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(isRenderBuffer)
|
|
DECLARE_VOID_BINDING_METHOD(renderbufferStorage)
|
|
DECLARE_VOID_BINDING_METHOD(clearDepth)
|
|
DECLARE_VOID_BINDING_METHOD(clearStencil)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(getTexParameter)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(getFramebufferAttachmentParameter)
|
|
DECLARE_VOID_BINDING_METHOD(stencilFuncSeparate)
|
|
DECLARE_VOID_BINDING_METHOD(stencilOpSeparate)
|
|
DECLARE_VOID_BINDING_METHOD(stencilMaskSeparate)
|
|
DECLARE_VOID_BINDING_METHOD(validateProgram)
|
|
DECLARE_VOID_BINDING_METHOD(depthFunc)
|
|
DECLARE_VOID_BINDING_METHOD(depthMask)
|
|
DECLARE_VOID_BINDING_METHOD(detachShader)
|
|
DECLARE_VOID_BINDING_METHOD(disable)
|
|
DECLARE_VOID_BINDING_METHOD(blendColor)
|
|
DECLARE_VOID_BINDING_METHOD(blendFunc)
|
|
DECLARE_VOID_BINDING_METHOD(blendFuncSeparate)
|
|
DECLARE_VOID_BINDING_METHOD(blendEquation)
|
|
DECLARE_VOID_BINDING_METHOD(blendEquationSeparate)
|
|
DECLARE_VOID_BINDING_METHOD(cullFace)
|
|
DECLARE_VOID_BINDING_METHOD(polygonOffset)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(getError)
|
|
DECLARE_VOID_BINDING_METHOD(bindAttribLocation)
|
|
DECLARE_VOID_BINDING_METHOD(lineWidth)
|
|
DECLARE_VOID_BINDING_METHOD(sampleCoverage)
|
|
DECLARE_VOID_BINDING_METHOD(frontFace)
|
|
DECLARE_VOID_BINDING_METHOD(hint)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(isEnabled)
|
|
DECLARE_VOID_BINDING_METHOD(readPixels)
|
|
DECLARE_VOID_BINDING_METHOD(depthRange)
|
|
DECLARE_VOID_BINDING_METHOD(generateMipmap)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(getAttachedShaders)
|
|
DECLARE_VOID_BINDING_METHOD(disableVertexAttribArray)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(getActiveAttrib)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(getActiveUniform)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(getUniform)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(getVertexAttrib)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(getVertexAttribOffset)
|
|
DECLARE_RET_VALUE_BINDING_METHOD(isContextLost)
|
|
DECLARE_VOID_BINDING_METHOD(bufferSubData)
|
|
|
|
void uniform3f(const Napi::CallbackInfo &info);
|
|
void uniform4f(const Napi::CallbackInfo &info);
|
|
|
|
void uniform1i(const Napi::CallbackInfo &info);
|
|
void uniform2i(const Napi::CallbackInfo &info);
|
|
void uniform3i(const Napi::CallbackInfo &info);
|
|
void uniform4i(const Napi::CallbackInfo &info);
|
|
|
|
void uniform1fv(const Napi::CallbackInfo &info);
|
|
void uniform2fv(const Napi::CallbackInfo &info);
|
|
void uniform3fv(const Napi::CallbackInfo &info);
|
|
void uniform4fv(const Napi::CallbackInfo &info);
|
|
|
|
void uniform1iv(const Napi::CallbackInfo &info);
|
|
void uniform2iv(const Napi::CallbackInfo &info);
|
|
void uniform3iv(const Napi::CallbackInfo &info);
|
|
void uniform4iv(const Napi::CallbackInfo &info);
|
|
|
|
void uniformMatrix2fv(const Napi::CallbackInfo &info);
|
|
void uniformMatrix3fv(const Napi::CallbackInfo &info);
|
|
void uniformMatrix4fv(const Napi::CallbackInfo &info);
|
|
|
|
void vertexAttrib1f(const Napi::CallbackInfo &info);
|
|
void vertexAttrib2f(const Napi::CallbackInfo &info);
|
|
void vertexAttrib3f(const Napi::CallbackInfo &info);
|
|
void vertexAttrib4f(const Napi::CallbackInfo &info);
|
|
|
|
void vertexAttrib1fv(const Napi::CallbackInfo &info);
|
|
void vertexAttrib2fv(const Napi::CallbackInfo &info);
|
|
void vertexAttrib3fv(const Napi::CallbackInfo &info);
|
|
void vertexAttrib4fv(const Napi::CallbackInfo &info);
|
|
|
|
void colorMask(const Napi::CallbackInfo &info);
|
|
Napi::Value getShaderSource(const Napi::CallbackInfo &info);
|
|
|
|
void parseTypeArrayAndCallUniformFloatFunc(const Napi::CallbackInfo &info, glUniformFloatPtr func);
|
|
void parseTypeArrayAndCallUniformIntFunc(const Napi::CallbackInfo &info, glUniformIntPtr func);
|
|
void parseTypeArrayAndCallUniformMatrixFunc(const Napi::CallbackInfo &info, int size, glUniformMatrixPtr func);
|
|
void parseTypeArrayAndCallVertexFunc(const Napi::CallbackInfo &info, glVeterxFloatPtr func);
|
|
|
|
static Napi::FunctionReference constructor;
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LINK_STATUS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(COLOR_BUFFER_BIT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DEPTH_BUFFER_BIT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_BUFFER_BIT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TRIANGLES)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(POINTS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LINE_STRIP)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LINES)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LINE_LOOP)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TRIANGLE_FAN)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TRIANGLE_STRIP)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DEPTH_TEST)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SCISSOR_TEST)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_TEST)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(COMPILE_STATUS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ARRAY_BUFFER)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STATIC_DRAW)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ELEMENT_ARRAY_BUFFER)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(VERTEX_SHADER)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRAGMENT_SHADER)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(UNSIGNED_SHORT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FLOAT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BYTE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(UNSIGNED_BYTE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SHORT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(INT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(UNSIGNED_INT)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FALSE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TRUE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ZERO)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ONE)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SRC_COLOR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ONE_MINUS_SRC_COLOR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SRC_ALPHA)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ONE_MINUS_SRC_ALPHA)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DST_ALPHA)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ONE_MINUS_DST_ALPHA)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DST_COLOR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ONE_MINUS_DST_COLOR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SRC_ALPHA_SATURATE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(CONSTANT_COLOR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ONE_MINUS_CONSTANT_COLOR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(CONSTANT_ALPHA)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ONE_MINUS_CONSTANT_ALPHA)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BLEND_EQUATION)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BLEND_EQUATION_RGB)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BLEND_EQUATION_ALPHA)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BLEND_DST_RGB)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BLEND_SRC_RGB)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BLEND_DST_ALPHA)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BLEND_SRC_ALPHA)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BLEND_COLOR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ARRAY_BUFFER_BINDING)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ELEMENT_ARRAY_BUFFER_BINDING)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LINE_WIDTH)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ALIASED_POINT_SIZE_RANGE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ALIASED_LINE_WIDTH_RANGE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(CULL_FACE_MODE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRONT_FACE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DEPTH_RANGE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DEPTH_WRITEMASK)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DEPTH_CLEAR_VALUE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DEPTH_FUNC)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_CLEAR_VALUE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_FUNC)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_FAIL)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_PASS_DEPTH_FAIL)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_PASS_DEPTH_PASS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_REF)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_VALUE_MASK)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_WRITEMASK)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_BACK_FUNC)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_BACK_FAIL)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_BACK_PASS_DEPTH_FAIL)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_BACK_PASS_DEPTH_PASS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_BACK_REF)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_BACK_VALUE_MASK)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_BACK_WRITEMASK)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(VIEWPORT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SCISSOR_BOX)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(COLOR_CLEAR_VALUE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(COLOR_WRITEMASK)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(UNPACK_ALIGNMENT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(PACK_ALIGNMENT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(MAX_TEXTURE_SIZE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(MAX_VIEWPORT_DIMS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SUBPIXEL_BITS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RED_BITS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(GREEN_BITS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BLUE_BITS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ALPHA_BITS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DEPTH_BITS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_BITS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(POLYGON_OFFSET_UNITS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(POLYGON_OFFSET_FACTOR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_BINDING_2D)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SAMPLE_BUFFERS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SAMPLES)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SAMPLE_COVERAGE_VALUE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SAMPLE_COVERAGE_INVERT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(COMPRESSED_TEXTURE_FORMATS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(VENDOR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RENDERER)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(VERSION)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(IMPLEMENTATION_COLOR_READ_TYPE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(IMPLEMENTATION_COLOR_READ_FORMAT)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(NEVER)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LESS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(EQUAL)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LEQUAL)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(GREATER)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(NOTEQUAL)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(GEQUAL)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ALWAYS)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(CURRENT_VERTEX_ATTRIB)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(VERTEX_ATTRIB_ARRAY_ENABLED)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(VERTEX_ATTRIB_ARRAY_SIZE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(VERTEX_ATTRIB_ARRAY_STRIDE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(VERTEX_ATTRIB_ARRAY_TYPE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(VERTEX_ATTRIB_ARRAY_NORMALIZED)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(VERTEX_ATTRIB_ARRAY_POINTER)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(VERTEX_ATTRIB_ARRAY_BUFFER_BINDING)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(CULL_FACE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRONT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BACK)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRONT_AND_BACK)
|
|
|
|
// Enabling and disabling
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BLEND)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DITHER)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(POLYGON_OFFSET_FILL)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SAMPLE_ALPHA_TO_COVERAGE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SAMPLE_COVERAGE)
|
|
|
|
// errors
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(NO_ERROR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(INVALID_ENUM)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(INVALID_VALUE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(INVALID_OPERATION)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(OUT_OF_MEMORY)
|
|
// DEFINE_CONST_PROPERY_GET_FUNCTION(CONTEXT_LOST_WEBGL)
|
|
|
|
// Front face directions
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(CW)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(CCW)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DONT_CARE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FASTEST)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(NICEST)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(GENERATE_MIPMAP_HINT)
|
|
|
|
// Pixel types
|
|
// BIND_CONSTANT(UNSIGNED_BYTE, 0x1401)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(UNSIGNED_SHORT_4_4_4_4)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(UNSIGNED_SHORT_5_5_5_1)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(UNSIGNED_SHORT_5_6_5)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FLOAT_VEC2)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FLOAT_VEC3)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FLOAT_VEC4)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(INT_VEC2)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(INT_VEC3)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(INT_VEC4)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BOOL)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BOOL_VEC2)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BOOL_VEC3)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(BOOL_VEC4)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FLOAT_MAT2)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FLOAT_MAT3)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FLOAT_MAT4)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SAMPLER_2D)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(SAMPLER_CUBE)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LOW_FLOAT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(MEDIUM_FLOAT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(HIGH_FLOAT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LOW_INT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(MEDIUM_INT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(HIGH_INT)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(KEEP)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(REPLACE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(INCR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DECR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(INVERT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(INCR_WRAP)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DECR_WRAP)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(NEAREST)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LINEAR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(NEAREST_MIPMAP_NEAREST)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LINEAR_MIPMAP_NEAREST)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(NEAREST_MIPMAP_LINEAR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LINEAR_MIPMAP_LINEAR)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_MAG_FILTER)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_MIN_FILTER)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_WRAP_S)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_WRAP_T)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_2D)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_CUBE_MAP)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_BINDING_CUBE_MAP)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_CUBE_MAP_POSITIVE_X)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_CUBE_MAP_NEGATIVE_X)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_CUBE_MAP_POSITIVE_Y)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_CUBE_MAP_NEGATIVE_Y)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_CUBE_MAP_POSITIVE_Z)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE_CUBE_MAP_NEGATIVE_Z)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(MAX_CUBE_MAP_TEXTURE_SIZE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE0)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE1)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE2)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE3)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE4)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE5)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE6)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE7)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE8)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE9)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE10)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE11)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE12)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE13)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE14)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE15)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE16)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE17)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE18)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE19)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE20)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE21)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE22)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE23)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE24)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE25)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE26)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE27)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE28)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE29)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE30)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(TEXTURE31)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ACTIVE_TEXTURE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(REPEAT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(CLAMP_TO_EDGE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(MIRRORED_REPEAT)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRAMEBUFFER)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RENDERBUFFER)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RGBA)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RGBA4)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DEPTH_COMPONENT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(ALPHA)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RGB5_A1)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RGB565)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LUMINANCE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(LUMINANCE_ALPHA)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DEPTH_COMPONENT16)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_INDEX8)
|
|
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RENDERBUFFER_WIDTH)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RENDERBUFFER_HEIGHT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RENDERBUFFER_INTERNAL_FORMAT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RENDERBUFFER_RED_SIZE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RENDERBUFFER_GREEN_SIZE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RENDERBUFFER_BLUE_SIZE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RENDERBUFFER_ALPHA_SIZE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RENDERBUFFER_DEPTH_SIZE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RENDERBUFFER_STENCIL_SIZE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(COLOR_ATTACHMENT0)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(DEPTH_ATTACHMENT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(STENCIL_ATTACHMENT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(NONE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRAMEBUFFER_COMPLETE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRAMEBUFFER_INCOMPLETE_ATTACHMENT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRAMEBUFFER_INCOMPLETE_DIMENSIONS)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRAMEBUFFER_UNSUPPORTED)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(FRAMEBUFFER_BINDING)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(RENDERBUFFER_BINDING)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(MAX_RENDERBUFFER_SIZE)
|
|
DEFINE_CONST_PROPERY_GET_FUNCTION(INVALID_FRAMEBUFFER_OPERATION)
|
|
|
|
Napi::Value getUNPACK_FLIP_Y_WEBGL(const Napi::CallbackInfo &info)
|
|
{
|
|
return Napi::Number::New(info.Env(), GL_UNPACK_FLIP_Y_WEBGL);
|
|
}
|
|
|
|
Napi::Value getUNPACK_PREMULTIPLY_ALPHA_WEBGL(const Napi::CallbackInfo &info)
|
|
{
|
|
return Napi::Number::New(info.Env(), GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL);
|
|
}
|
|
|
|
Napi::Value getUNPACK(const Napi::CallbackInfo &info)
|
|
{
|
|
return Napi::Number::New(info.Env(), 0x9243);
|
|
}
|
|
|
|
Napi::Value getDrawingBufferWidth(const Napi::CallbackInfo &info)
|
|
{
|
|
return Napi::Number::New(info.Env(), mRenderContext->getWdith());
|
|
}
|
|
|
|
Napi::Value getDrawingBufferHeight(const Napi::CallbackInfo &info)
|
|
{
|
|
return Napi::Number::New(info.Env(), mRenderContext->getHeight());
|
|
}
|
|
|
|
protected:
|
|
std::shared_ptr<GRenderContext> mRenderContext = nullptr;
|
|
bool mUnpackFlipYWebGL;
|
|
bool mUnpackPremultiplyAlphaWebGL;
|
|
};
|
|
} // namespace NodeBinding
|
|
#endif |