@gjsify/webgl 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/lib/cjs/@types/glsl-tokenizer/index.d.js +0 -0
- package/lib/cjs/extensions/ext-blend-minmax.js +37 -0
- package/lib/cjs/extensions/ext-texture-filter-anisotropic.js +37 -0
- package/lib/cjs/extensions/oes-element-index-unit.js +33 -0
- package/lib/cjs/extensions/oes-standard-derivatives.js +36 -0
- package/lib/cjs/extensions/oes-texture-float-linear.js +33 -0
- package/lib/cjs/extensions/oes-texture-float.js +33 -0
- package/lib/cjs/extensions/stackgl-destroy-context.js +31 -0
- package/lib/cjs/extensions/stackgl-resize-drawing-buffer.js +31 -0
- package/lib/cjs/html-canvas-element.js +89 -0
- package/lib/cjs/index.js +34 -0
- package/lib/cjs/index.spec.js +175 -0
- package/lib/cjs/linkable.js +69 -0
- package/lib/cjs/test.js +25 -0
- package/lib/cjs/types/constructor.js +15 -0
- package/lib/cjs/types/extension.js +15 -0
- package/lib/cjs/types/index.js +21 -0
- package/lib/cjs/types/typed-array.js +15 -0
- package/lib/cjs/types/webgl-constants.js +15 -0
- package/lib/cjs/types/webgl-context-attribute-options.js +15 -0
- package/lib/cjs/utils.js +241 -0
- package/lib/cjs/webgl-active-info.js +29 -0
- package/lib/cjs/webgl-buffer.js +37 -0
- package/lib/cjs/webgl-context-attributes.js +43 -0
- package/lib/cjs/webgl-drawing-buffer-wrapper.js +29 -0
- package/lib/cjs/webgl-framebuffer.js +128 -0
- package/lib/cjs/webgl-program.js +45 -0
- package/lib/cjs/webgl-renderbuffer.js +43 -0
- package/lib/cjs/webgl-rendering-context.js +3355 -0
- package/lib/cjs/webgl-shader-precision-format.js +30 -0
- package/lib/cjs/webgl-shader.js +42 -0
- package/lib/cjs/webgl-texture-unit.js +31 -0
- package/lib/cjs/webgl-texture.js +41 -0
- package/lib/cjs/webgl-uniform-location.js +34 -0
- package/lib/cjs/webgl-vertex-attribute.js +166 -0
- package/lib/esm/@types/glsl-tokenizer/index.d.js +0 -0
- package/lib/esm/extensions/ext-blend-minmax.js +18 -0
- package/lib/esm/extensions/ext-texture-filter-anisotropic.js +18 -0
- package/lib/esm/extensions/oes-element-index-unit.js +14 -0
- package/lib/esm/extensions/oes-standard-derivatives.js +17 -0
- package/lib/esm/extensions/oes-texture-float-linear.js +14 -0
- package/lib/esm/extensions/oes-texture-float.js +14 -0
- package/lib/esm/extensions/stackgl-destroy-context.js +12 -0
- package/lib/esm/extensions/stackgl-resize-drawing-buffer.js +12 -0
- package/lib/esm/html-canvas-element.js +70 -0
- package/lib/esm/index.js +18 -0
- package/lib/esm/index.spec.js +146 -0
- package/lib/esm/linkable.js +50 -0
- package/lib/esm/test.js +3 -0
- package/lib/esm/types/constructor.js +0 -0
- package/lib/esm/types/extension.js +0 -0
- package/lib/esm/types/index.js +5 -0
- package/lib/esm/types/typed-array.js +0 -0
- package/lib/esm/types/webgl-constants.js +0 -0
- package/lib/esm/types/webgl-context-attribute-options.js +0 -0
- package/lib/esm/utils.js +212 -0
- package/lib/esm/webgl-active-info.js +10 -0
- package/lib/esm/webgl-buffer.js +18 -0
- package/lib/esm/webgl-context-attributes.js +24 -0
- package/lib/esm/webgl-drawing-buffer-wrapper.js +10 -0
- package/lib/esm/webgl-framebuffer.js +109 -0
- package/lib/esm/webgl-program.js +26 -0
- package/lib/esm/webgl-renderbuffer.js +24 -0
- package/lib/esm/webgl-rendering-context.js +3343 -0
- package/lib/esm/webgl-shader-precision-format.js +11 -0
- package/lib/esm/webgl-shader.js +23 -0
- package/lib/esm/webgl-texture-unit.js +12 -0
- package/lib/esm/webgl-texture.js +22 -0
- package/lib/esm/webgl-uniform-location.js +15 -0
- package/lib/esm/webgl-vertex-attribute.js +147 -0
- package/lib/types/extensions/ext-blend-minmax.d.ts +7 -0
- package/lib/types/extensions/ext-texture-filter-anisotropic.d.ts +7 -0
- package/lib/types/extensions/oes-element-index-unit.d.ts +4 -0
- package/lib/types/extensions/oes-standard-derivatives.d.ts +6 -0
- package/lib/types/extensions/oes-texture-float-linear.d.ts +4 -0
- package/lib/types/extensions/oes-texture-float.d.ts +4 -0
- package/lib/types/extensions/stackgl-destroy-context.d.ts +6 -0
- package/lib/types/extensions/stackgl-resize-drawing-buffer.d.ts +6 -0
- package/lib/types/html-canvas-element.d.ts +38 -0
- package/lib/types/index.d.ts +18 -0
- package/lib/types/linkable.d.ts +13 -0
- package/lib/types/types/constructor.d.ts +3 -0
- package/lib/types/types/extension.d.ts +2 -0
- package/lib/types/types/index.d.ts +5 -0
- package/lib/types/types/typed-array.d.ts +1 -0
- package/lib/types/types/webgl-constants.d.ts +299 -0
- package/lib/types/types/webgl-context-attribute-options.d.ts +12 -0
- package/lib/types/utils.d.ts +32 -0
- package/lib/types/webgl-active-info.d.ts +7 -0
- package/lib/types/webgl-buffer.d.ts +10 -0
- package/lib/types/webgl-context-attributes.d.ts +14 -0
- package/lib/types/webgl-drawing-buffer-wrapper.d.ts +6 -0
- package/lib/types/webgl-framebuffer.d.ts +17 -0
- package/lib/types/webgl-program.d.ts +14 -0
- package/lib/types/webgl-renderbuffer.d.ts +12 -0
- package/lib/types/webgl-rendering-context.d.ts +260 -0
- package/lib/types/webgl-shader-precision-format.d.ts +7 -0
- package/lib/types/webgl-shader.d.ts +12 -0
- package/lib/types/webgl-texture-unit.d.ts +10 -0
- package/lib/types/webgl-texture.d.ts +14 -0
- package/lib/types/webgl-uniform-location.d.ts +18 -0
- package/lib/types/webgl-vertex-attribute.d.ts +38 -0
- package/meson.build +39 -0
- package/package.json +55 -0
- package/src/test/app.vala +60 -0
- package/src/ts/@types/glsl-tokenizer/index.d.ts +18 -0
- package/src/ts/extensions/angle-instanced-arrays.ts.off +232 -0
- package/src/ts/extensions/ext-blend-minmax.ts +18 -0
- package/src/ts/extensions/ext-texture-filter-anisotropic.ts +18 -0
- package/src/ts/extensions/oes-element-index-unit.ts +14 -0
- package/src/ts/extensions/oes-standard-derivatives.ts +17 -0
- package/src/ts/extensions/oes-texture-float-linear.ts +14 -0
- package/src/ts/extensions/oes-texture-float.ts +14 -0
- package/src/ts/extensions/oes-vertex-array-object.ts.off +128 -0
- package/src/ts/extensions/stackgl-destroy-context.ts +12 -0
- package/src/ts/extensions/stackgl-resize-drawing-buffer.ts +14 -0
- package/src/ts/extensions/webgl-draw-buffers.ts.off +107 -0
- package/src/ts/html-canvas-element.ts +98 -0
- package/src/ts/index.spec.ts +186 -0
- package/src/ts/index.ts +21 -0
- package/src/ts/linkable.ts +55 -0
- package/src/ts/test.ts +6 -0
- package/src/ts/types/constructor.ts +3 -0
- package/src/ts/types/extension.ts +3 -0
- package/src/ts/types/index.ts +26 -0
- package/src/ts/types/typed-array.ts +1 -0
- package/src/ts/types/webgl-constants.ts +300 -0
- package/src/ts/types/webgl-context-attribute-options.ts +12 -0
- package/src/ts/utils.ts +266 -0
- package/src/ts/webgl-active-info.ts +13 -0
- package/src/ts/webgl-buffer.ts +21 -0
- package/src/ts/webgl-context-attributes.ts +24 -0
- package/src/ts/webgl-drawing-buffer-wrapper.ts +10 -0
- package/src/ts/webgl-framebuffer.ts +133 -0
- package/src/ts/webgl-program.ts +30 -0
- package/src/ts/webgl-renderbuffer.ts +28 -0
- package/src/ts/webgl-rendering-context.ts +4050 -0
- package/src/ts/webgl-shader-precision-format.ts +12 -0
- package/src/ts/webgl-shader.ts +29 -0
- package/src/ts/webgl-texture-unit.ts +16 -0
- package/src/ts/webgl-texture.ts +27 -0
- package/src/ts/webgl-uniform-location.ts +18 -0
- package/src/ts/webgl-vertex-attribute.ts +169 -0
- package/src/vala/handle-types.vala +23 -0
- package/src/vala/webgl-rendering-context-base.vala +1265 -0
- package/src/vala/webgl-rendering-context.vala +265 -0
- package/src/vapi/epoxy.vapi +14558 -0
- package/src/vapi/glesv2.vapi +670 -0
- package/test.gjs.js +39972 -0
- package/test.gjs.js.meta.json +1 -0
- package/tmp/.tsbuildinfo +1 -0
- package/tsconfig.json +38 -0
- package/tsconfig.types.json +7 -0
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import '@girs/gdkpixbuf-2.0';
|
|
2
|
+
import Gwebgl from '@girs/gwebgl-0.1';
|
|
3
|
+
import GdkPixbuf from 'gi://GdkPixbuf?version=2.0';
|
|
4
|
+
import { WebGLContextAttributes } from './webgl-context-attributes.js';
|
|
5
|
+
import { GjsifyHTMLCanvasElement } from './html-canvas-element.js';
|
|
6
|
+
import { WebGLActiveInfo } from './webgl-active-info.js';
|
|
7
|
+
import { WebGLFramebuffer } from './webgl-framebuffer.js';
|
|
8
|
+
import { WebGLBuffer } from './webgl-buffer.js';
|
|
9
|
+
import { WebGLDrawingBufferWrapper } from './webgl-drawing-buffer-wrapper.js';
|
|
10
|
+
import { WebGLProgram } from './webgl-program.js';
|
|
11
|
+
import { WebGLRenderbuffer } from './webgl-renderbuffer.js';
|
|
12
|
+
import { WebGLShader } from './webgl-shader.js';
|
|
13
|
+
import { WebGLShaderPrecisionFormat } from './webgl-shader-precision-format.js';
|
|
14
|
+
import { WebGLTextureUnit } from './webgl-texture-unit.js';
|
|
15
|
+
import { WebGLTexture } from './webgl-texture.js';
|
|
16
|
+
import { WebGLUniformLocation } from './webgl-uniform-location.js';
|
|
17
|
+
import { WebGLVertexArrayObjectState, WebGLVertexArrayGlobalState } from './webgl-vertex-attribute.js';
|
|
18
|
+
import type { TypedArray, WebGLConstants } from './types/index.js';
|
|
19
|
+
export interface GjsifyWebGLRenderingContext extends WebGLConstants {
|
|
20
|
+
}
|
|
21
|
+
export declare class GjsifyWebGLRenderingContext implements WebGLRenderingContext {
|
|
22
|
+
canvas: GjsifyHTMLCanvasElement & HTMLCanvasElement;
|
|
23
|
+
/** TODO implement this: https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/drawingBufferColorSpace */
|
|
24
|
+
drawingBufferColorSpace: PredefinedColorSpace;
|
|
25
|
+
get drawingBufferHeight(): number;
|
|
26
|
+
get drawingBufferWidth(): number;
|
|
27
|
+
DEFAULT_ATTACHMENTS: number[];
|
|
28
|
+
DEFAULT_COLOR_ATTACHMENTS: number[];
|
|
29
|
+
/** context counter */
|
|
30
|
+
_: number;
|
|
31
|
+
_native: Gwebgl.WebGLRenderingContext;
|
|
32
|
+
_contextAttributes: WebGLContextAttributes;
|
|
33
|
+
_extensions: Record<string, any>;
|
|
34
|
+
_programs: Record<number, WebGLProgram>;
|
|
35
|
+
_shaders: Record<number, WebGLShader>;
|
|
36
|
+
_textures: Record<number, WebGLTexture>;
|
|
37
|
+
_framebuffers: Record<number, WebGLFramebuffer>;
|
|
38
|
+
_renderbuffers: Record<number, WebGLRenderbuffer>;
|
|
39
|
+
_buffers: Record<number, WebGLBuffer>;
|
|
40
|
+
_activeProgram: WebGLProgram | null;
|
|
41
|
+
_activeFramebuffer: WebGLFramebuffer | null;
|
|
42
|
+
_activeRenderbuffer: WebGLRenderbuffer | null;
|
|
43
|
+
_checkStencil: boolean;
|
|
44
|
+
_stencilState: boolean;
|
|
45
|
+
_activeTextureUnit: number;
|
|
46
|
+
_errorStack: GLenum[];
|
|
47
|
+
_defaultVertexObjectState: WebGLVertexArrayObjectState;
|
|
48
|
+
_vertexObjectState: WebGLVertexArrayObjectState;
|
|
49
|
+
_vertexGlobalState: WebGLVertexArrayGlobalState;
|
|
50
|
+
_maxTextureSize: number;
|
|
51
|
+
_maxTextureLevel: number;
|
|
52
|
+
_maxCubeMapSize: number;
|
|
53
|
+
_maxCubeMapLevel: number;
|
|
54
|
+
_unpackAlignment: number;
|
|
55
|
+
_packAlignment: number;
|
|
56
|
+
_attrib0Buffer: WebGLBuffer | null;
|
|
57
|
+
_textureUnits: WebGLTextureUnit[];
|
|
58
|
+
_drawingBuffer: WebGLDrawingBufferWrapper | null;
|
|
59
|
+
constructor(canvas: GjsifyHTMLCanvasElement | HTMLCanvasElement | null, options?: Gwebgl.WebGLRenderingContext.ConstructorProperties);
|
|
60
|
+
_initGLConstants(): void;
|
|
61
|
+
_getGlslVersion(es: boolean): "100" | "120";
|
|
62
|
+
_checkDimensions(target: GLenum, width: GLsizei, height: GLsizei, level: number): boolean;
|
|
63
|
+
_checkLocation(location: WebGLUniformLocation | null): boolean;
|
|
64
|
+
_checkLocationActive(location: WebGLUniformLocation | null): boolean;
|
|
65
|
+
_checkOwns(object: any): boolean;
|
|
66
|
+
_checkShaderSource(shader: WebGLShader): boolean;
|
|
67
|
+
_checkStencilState(): boolean;
|
|
68
|
+
_checkTextureTarget(target: GLenum): boolean;
|
|
69
|
+
_checkWrapper(object: any, Wrapper: any): boolean;
|
|
70
|
+
_checkValid(object: any, Type: any): boolean;
|
|
71
|
+
_checkVertexAttribState(maxIndex: number): boolean;
|
|
72
|
+
_checkVertexIndex(index: number): boolean;
|
|
73
|
+
_computePixelSize(type: GLenum, internalFormat: GLenum): 0 | 1 | 2 | 3 | 4;
|
|
74
|
+
_computeRowStride(width: number, pixelSize: number): number;
|
|
75
|
+
_fixupLink(program: WebGLProgram): boolean;
|
|
76
|
+
_framebufferOk(): boolean;
|
|
77
|
+
_getActiveBuffer(target: GLenum): WebGLBuffer;
|
|
78
|
+
_getActiveTextureUnit(): WebGLTextureUnit;
|
|
79
|
+
_getActiveTexture(target: GLenum): WebGLTexture;
|
|
80
|
+
_getAttachments(): any;
|
|
81
|
+
_getColorAttachments(): any;
|
|
82
|
+
_getParameterDirect(pname: GLenum): any;
|
|
83
|
+
_getTexImage(target: GLenum): WebGLTexture;
|
|
84
|
+
_preCheckFramebufferStatus(framebuffer: WebGLFramebuffer): 36053 | 36054 | 36055 | 36057 | 36061;
|
|
85
|
+
_isConstantBlendFunc(factor: GLenum): boolean;
|
|
86
|
+
_isObject(object: any, method: any, Wrapper: any): boolean;
|
|
87
|
+
_resizeDrawingBuffer(width: number, height: number): void;
|
|
88
|
+
_restoreError(lastError: GLenum): void;
|
|
89
|
+
_saveError(): void;
|
|
90
|
+
_switchActiveProgram(active: WebGLProgram | null): void;
|
|
91
|
+
_tryDetachFramebuffer(framebuffer: WebGLFramebuffer | null, renderbuffer: WebGLRenderbuffer): void;
|
|
92
|
+
_updateFramebufferAttachments(framebuffer: WebGLFramebuffer | null): void;
|
|
93
|
+
_validBlendFunc(factor: GLenum): boolean;
|
|
94
|
+
_validBlendMode(mode: GLenum): boolean;
|
|
95
|
+
_validCubeTarget(target: GLenum): boolean;
|
|
96
|
+
_validFramebufferAttachment(attachment: GLenum): boolean;
|
|
97
|
+
_validGLSLIdentifier(str: string): boolean;
|
|
98
|
+
_validTextureTarget(target: GLenum): boolean;
|
|
99
|
+
_verifyTextureCompleteness(target: GLenum, pname: GLenum, param: GLenum): void;
|
|
100
|
+
_wrapShader(_type: GLenum, source: string): string;
|
|
101
|
+
_beginAttrib0Hack(): void;
|
|
102
|
+
_endAttrib0Hack(): void;
|
|
103
|
+
_allocateDrawingBuffer(width: number, height: number): void;
|
|
104
|
+
/**
|
|
105
|
+
* The `WebGLRenderingContext.getContextAttributes()` method returns a `WebGLContextAttributes` object that contains the actual context parameters.
|
|
106
|
+
* Might return `null`, if the context is lost.
|
|
107
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getContextAttributes
|
|
108
|
+
* @returns A `WebGLContextAttributes` object that contains the actual context parameters, or `null` if the context is lost.
|
|
109
|
+
*/
|
|
110
|
+
getContextAttributes(): WebGLContextAttributes | null;
|
|
111
|
+
getExtension(name: string): any;
|
|
112
|
+
bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;
|
|
113
|
+
bufferData(target: GLenum, data: TypedArray | BufferSource | null, usage: GLenum): void;
|
|
114
|
+
bufferSubData(target: GLenum, offset: GLintptr, data: BufferSource): void;
|
|
115
|
+
compressedTexImage2D(target: GLenum, level: GLint, internalFormat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: TypedArray): void;
|
|
116
|
+
compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: TypedArray): void;
|
|
117
|
+
readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: TypedArray | null): void;
|
|
118
|
+
texImage2D(target: GLenum, level: GLint, internalFormat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
|
|
119
|
+
texImage2D(target: GLenum, level: GLint, internalFormat: GLint, format: GLenum, type: GLenum, source: TexImageSource | GdkPixbuf.Pixbuf): void;
|
|
120
|
+
texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
|
|
121
|
+
texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource | GdkPixbuf.Pixbuf): void;
|
|
122
|
+
_checkUniformValid(location: WebGLUniformLocation | null, v0: GLfloat, name: string, count: number, type: string): boolean;
|
|
123
|
+
_checkUniformValueValid(location: WebGLUniformLocation | null, value: Float32List | Int32List, name: string, count: number, _type: string): boolean;
|
|
124
|
+
uniform1fv(location: WebGLUniformLocation | null, value: Float32List | Int32List): void;
|
|
125
|
+
uniform1iv(location: WebGLUniformLocation | null, v: Int32List): void;
|
|
126
|
+
uniform2fv(location: WebGLUniformLocation | null, v: Float32List): void;
|
|
127
|
+
uniform2iv(location: WebGLUniformLocation | null, v: Int32List): void;
|
|
128
|
+
uniform3fv(location: WebGLUniformLocation | null, v: Float32List): void;
|
|
129
|
+
uniform3iv(location: WebGLUniformLocation | null, v: Int32List): void;
|
|
130
|
+
uniform4fv(location: WebGLUniformLocation | null, v: Float32List): void;
|
|
131
|
+
uniform4iv(location: WebGLUniformLocation | null, v: Int32List): void;
|
|
132
|
+
_checkUniformMatrix(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List, name: string, count: number): boolean;
|
|
133
|
+
uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;
|
|
134
|
+
uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;
|
|
135
|
+
uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;
|
|
136
|
+
activeTexture(texture?: GLenum): void;
|
|
137
|
+
attachShader(program: WebGLProgram, shader: WebGLShader): void;
|
|
138
|
+
bindAttribLocation(program: WebGLProgram, index: GLuint, name: string): void;
|
|
139
|
+
bindBuffer(target: GLenum, buffer: WebGLBuffer | null): void;
|
|
140
|
+
bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer | null): void;
|
|
141
|
+
bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer | null): void;
|
|
142
|
+
bindTexture(target: GLenum, texture: WebGLTexture | null): void;
|
|
143
|
+
blendColor(red?: GLclampf, green?: GLclampf, blue?: GLclampf, alpha?: GLclampf): void;
|
|
144
|
+
blendEquation(mode?: GLenum): void;
|
|
145
|
+
blendEquationSeparate(modeRGB?: GLenum, modeAlpha?: GLenum): void;
|
|
146
|
+
blendFunc(sfactor?: GLenum, dfactor?: GLenum): void;
|
|
147
|
+
blendFuncSeparate(srcRGB?: GLenum, dstRGB?: GLenum, srcAlpha?: GLenum, dstAlpha?: GLenum): void;
|
|
148
|
+
checkFramebufferStatus(target: GLenum): GLenum;
|
|
149
|
+
clear(mask?: GLbitfield): void;
|
|
150
|
+
clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;
|
|
151
|
+
clearDepth(depth: GLclampf): void;
|
|
152
|
+
clearStencil(s?: GLint): void;
|
|
153
|
+
colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean): void;
|
|
154
|
+
compileShader(shader: WebGLShader): void;
|
|
155
|
+
copyTexImage2D(target?: GLenum, level?: GLint, internalFormat?: GLenum, x?: GLint, y?: GLint, width?: GLsizei, height?: GLsizei, border?: GLint): void;
|
|
156
|
+
copyTexSubImage2D(target?: GLenum, level?: GLint, xoffset?: GLint, yoffset?: GLint, x?: GLint, y?: GLint, width?: GLsizei, height?: GLsizei): void;
|
|
157
|
+
createBuffer(): WebGLBuffer | null;
|
|
158
|
+
createFramebuffer(): WebGLFramebuffer | null;
|
|
159
|
+
createProgram(): WebGLProgram | null;
|
|
160
|
+
createRenderbuffer(): WebGLRenderbuffer | null;
|
|
161
|
+
createShader(type?: GLenum): WebGLShader | null;
|
|
162
|
+
createTexture(): WebGLTexture | null;
|
|
163
|
+
cullFace(mode: GLenum): void;
|
|
164
|
+
deleteBuffer(buffer: WebGLBuffer | null): void;
|
|
165
|
+
deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void;
|
|
166
|
+
_deleteLinkable(name: 'deleteProgram', object: WebGLProgram | null, Type: typeof WebGLProgram): void;
|
|
167
|
+
_deleteLinkable(name: 'deleteShader', object: WebGLShader | null, Type: typeof WebGLShader): void;
|
|
168
|
+
deleteProgram(program: WebGLProgram | null): void;
|
|
169
|
+
deleteRenderbuffer(renderbuffer: WebGLRenderbuffer | null): void;
|
|
170
|
+
deleteShader(shader: WebGLShader | null): void;
|
|
171
|
+
deleteTexture(texture: WebGLTexture | null): void;
|
|
172
|
+
depthFunc(func: GLenum): void;
|
|
173
|
+
depthMask(flag: GLboolean): void;
|
|
174
|
+
depthRange(zNear: GLclampf, zFar: GLclampf): void;
|
|
175
|
+
destroy(): void;
|
|
176
|
+
detachShader(program: WebGLProgram, shader: WebGLShader): void;
|
|
177
|
+
disable(cap?: GLenum): void;
|
|
178
|
+
disableVertexAttribArray(index?: GLuint): void;
|
|
179
|
+
drawArrays(mode?: GLenum, first?: GLint, count?: GLsizei): void;
|
|
180
|
+
drawElements(mode?: GLenum, count?: GLsizei, type?: GLenum, ioffset?: GLintptr): void;
|
|
181
|
+
enable(cap?: GLenum): void;
|
|
182
|
+
enableVertexAttribArray(index: GLuint): void;
|
|
183
|
+
finish(): void;
|
|
184
|
+
flush(): void;
|
|
185
|
+
framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbufferTarget: GLenum, renderbuffer: WebGLRenderbuffer | null): void;
|
|
186
|
+
framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture | null, level?: GLint): void;
|
|
187
|
+
frontFace(mode?: GLenum): void;
|
|
188
|
+
generateMipmap(target?: GLenum): void;
|
|
189
|
+
getActiveAttrib(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
|
|
190
|
+
getActiveUniform(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
|
|
191
|
+
getAttachedShaders(program: WebGLProgram): WebGLShader[] | null;
|
|
192
|
+
getAttribLocation(program: WebGLProgram, name: string): GLint;
|
|
193
|
+
getBufferParameter(target?: GLenum, pname?: GLenum): any;
|
|
194
|
+
getError(): GLenum;
|
|
195
|
+
setError(error: GLenum): void;
|
|
196
|
+
getFramebufferAttachmentParameter(target?: GLenum, attachment?: GLenum, pname?: GLenum): any;
|
|
197
|
+
getParameter(pname?: GLenum): any;
|
|
198
|
+
getProgramInfoLog(program: WebGLProgram): string | null;
|
|
199
|
+
getProgramParameter(program: WebGLProgram, pname?: GLenum): any;
|
|
200
|
+
getRenderbufferParameter(target?: GLenum, pname?: GLenum): any;
|
|
201
|
+
getShaderInfoLog(shader: WebGLShader): string | null;
|
|
202
|
+
getShaderParameter(shader: WebGLShader, pname?: GLenum): any;
|
|
203
|
+
getShaderPrecisionFormat(shaderType?: GLenum, precisionType?: GLenum): WebGLShaderPrecisionFormat | null;
|
|
204
|
+
getShaderSource(shader: WebGLShader): string | null;
|
|
205
|
+
getSupportedExtensions(): string[];
|
|
206
|
+
_getTexParameterDirect(target?: GLenum, pname?: GLenum): unknown;
|
|
207
|
+
getTexParameter(target?: GLenum, pname?: GLenum): any;
|
|
208
|
+
getUniform(program: WebGLProgram, location: WebGLUniformLocation): any;
|
|
209
|
+
getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;
|
|
210
|
+
getVertexAttrib(index?: GLuint, pname?: GLenum): any;
|
|
211
|
+
getVertexAttribOffset(index?: GLuint, pname?: GLenum): GLintptr;
|
|
212
|
+
hint(target?: GLenum, mode?: GLenum): void;
|
|
213
|
+
isBuffer(buffer: WebGLBuffer): GLboolean;
|
|
214
|
+
isContextLost(): boolean;
|
|
215
|
+
isEnabled(cap?: GLenum): GLboolean;
|
|
216
|
+
isFramebuffer(framebuffer: WebGLShader): GLboolean;
|
|
217
|
+
isProgram(program: WebGLProgram): GLboolean;
|
|
218
|
+
isRenderbuffer(renderbuffer: WebGLRenderbuffer): GLboolean;
|
|
219
|
+
isShader(shader: WebGLShader): GLboolean;
|
|
220
|
+
isTexture(texture: WebGLTexture): GLboolean;
|
|
221
|
+
lineWidth(width: GLfloat): void;
|
|
222
|
+
linkProgram(program: WebGLProgram): void;
|
|
223
|
+
/** The `WebGLRenderingContext.pixelStorei()` method of the WebGL API specifies the pixel storage modes. */
|
|
224
|
+
pixelStorei(pname?: GLenum, param?: GLint | GLboolean): void;
|
|
225
|
+
polygonOffset(factor: GLfloat, units: GLfloat): void;
|
|
226
|
+
renderbufferStorage(target?: GLenum, internalFormat?: GLenum, width?: GLsizei, height?: GLsizei): void;
|
|
227
|
+
resize(width?: number, height?: number): void;
|
|
228
|
+
sampleCoverage(value: GLclampf, invert: GLboolean): void;
|
|
229
|
+
scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
|
|
230
|
+
shaderSource(shader: WebGLShader, source: string): void;
|
|
231
|
+
stencilFunc(func: GLenum, ref: GLint, mask: GLuint): void;
|
|
232
|
+
stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint): void;
|
|
233
|
+
stencilMask(mask: GLuint): void;
|
|
234
|
+
stencilMaskSeparate(face: GLenum, mask: GLuint): void;
|
|
235
|
+
stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum): void;
|
|
236
|
+
stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum): void;
|
|
237
|
+
texParameterf(target: GLenum, pname: GLenum, param: GLfloat): void;
|
|
238
|
+
texParameteri(target?: GLenum, pname?: GLenum, param?: GLint): void;
|
|
239
|
+
uniform1f(location: WebGLUniformLocation | null, x: GLfloat): void;
|
|
240
|
+
uniform1i(location: WebGLUniformLocation | null, x: GLint): void;
|
|
241
|
+
uniform2f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat): void;
|
|
242
|
+
uniform2i(location: WebGLUniformLocation | null, x: GLint, y: GLint): void;
|
|
243
|
+
uniform3f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat): void;
|
|
244
|
+
uniform3i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint): void;
|
|
245
|
+
uniform4f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;
|
|
246
|
+
uniform4i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint, w: GLint): void;
|
|
247
|
+
useProgram(program: WebGLProgram): void;
|
|
248
|
+
validateProgram(program: WebGLProgram): void;
|
|
249
|
+
vertexAttrib1f(index: GLuint, x: GLfloat): void;
|
|
250
|
+
vertexAttrib1fv(index: GLuint, values: Float32List): void;
|
|
251
|
+
vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat): void;
|
|
252
|
+
vertexAttrib2fv(index: GLuint, values: Float32List): void;
|
|
253
|
+
vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat): void;
|
|
254
|
+
vertexAttrib3fv(index: GLuint, values: Float32List): void;
|
|
255
|
+
vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;
|
|
256
|
+
vertexAttrib4fv(index: GLuint, values: Float32List): void;
|
|
257
|
+
vertexAttribPointer(index?: GLuint, size?: GLint, type?: GLenum, normalized?: GLboolean, stride?: GLsizei, offset?: GLintptr): void;
|
|
258
|
+
viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
|
|
259
|
+
}
|
|
260
|
+
export { GjsifyWebGLRenderingContext as WebGLRenderingContext };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare class GjsifyWebGLShaderPrecisionFormat implements WebGLShaderPrecisionFormat {
|
|
2
|
+
rangeMin: number;
|
|
3
|
+
rangeMax: number;
|
|
4
|
+
precision: number;
|
|
5
|
+
constructor(_: WebGLShaderPrecisionFormat);
|
|
6
|
+
}
|
|
7
|
+
export { GjsifyWebGLShaderPrecisionFormat as WebGLShaderPrecisionFormat };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Linkable } from './linkable.js';
|
|
2
|
+
import type { GjsifyWebGLRenderingContext } from './webgl-rendering-context.js';
|
|
3
|
+
export declare class GjsifyWebGLShader extends Linkable implements WebGLShader {
|
|
4
|
+
_type: GLenum;
|
|
5
|
+
_ctx: GjsifyWebGLRenderingContext;
|
|
6
|
+
_source: string;
|
|
7
|
+
_compileStatus: boolean;
|
|
8
|
+
_compileInfo: string;
|
|
9
|
+
constructor(_: WebGLShader & number, ctx: GjsifyWebGLRenderingContext, type: GLenum);
|
|
10
|
+
_performDelete(): void;
|
|
11
|
+
}
|
|
12
|
+
export { GjsifyWebGLShader as WebGLShader };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { GjsifyWebGLRenderingContext } from './webgl-rendering-context.js';
|
|
2
|
+
import type { WebGLTexture } from './webgl-texture.js';
|
|
3
|
+
export declare class WebGLTextureUnit {
|
|
4
|
+
_ctx: GjsifyWebGLRenderingContext;
|
|
5
|
+
_idx: number;
|
|
6
|
+
_mode: number;
|
|
7
|
+
_bind2D: WebGLTexture | null;
|
|
8
|
+
_bindCube: WebGLTexture | null;
|
|
9
|
+
constructor(ctx: GjsifyWebGLRenderingContext, idx: number);
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Linkable } from './linkable.js';
|
|
2
|
+
import type { GjsifyWebGLRenderingContext } from './webgl-rendering-context.js';
|
|
3
|
+
export declare class GjsifyWebGLTexture extends Linkable implements WebGLTexture {
|
|
4
|
+
_ctx: GjsifyWebGLRenderingContext;
|
|
5
|
+
_binding: number;
|
|
6
|
+
_levelWidth: Int32Array;
|
|
7
|
+
_levelHeight: Int32Array;
|
|
8
|
+
_format: number;
|
|
9
|
+
_type: number;
|
|
10
|
+
_complete: boolean;
|
|
11
|
+
constructor(_: WebGLTexture & number, ctx: GjsifyWebGLRenderingContext);
|
|
12
|
+
_performDelete(): void;
|
|
13
|
+
}
|
|
14
|
+
export { GjsifyWebGLTexture as WebGLTexture };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { WebGLProgram } from './webgl-program.js';
|
|
2
|
+
export declare class GjsifyWebGLUniformLocation implements WebGLUniformLocation {
|
|
3
|
+
_: WebGLUniformLocation & number;
|
|
4
|
+
_program: WebGLProgram;
|
|
5
|
+
_linkCount: number;
|
|
6
|
+
_activeInfo: {
|
|
7
|
+
size: GLsizei;
|
|
8
|
+
type: GLenum;
|
|
9
|
+
name: string;
|
|
10
|
+
};
|
|
11
|
+
_array: Array<number | null> | null;
|
|
12
|
+
constructor(_: WebGLUniformLocation & number, program: WebGLProgram, info: {
|
|
13
|
+
size: GLsizei;
|
|
14
|
+
type: GLenum;
|
|
15
|
+
name: string;
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export { GjsifyWebGLUniformLocation as WebGLUniformLocation };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { WebGLBuffer } from './webgl-buffer.js';
|
|
2
|
+
import type { GjsifyWebGLRenderingContext } from './webgl-rendering-context.js';
|
|
3
|
+
export declare class WebGLVertexArrayObjectAttribute {
|
|
4
|
+
_ctx: GjsifyWebGLRenderingContext;
|
|
5
|
+
_idx: number;
|
|
6
|
+
_isPointer: boolean;
|
|
7
|
+
_pointerBuffer: WebGLBuffer | null;
|
|
8
|
+
_pointerOffset: number;
|
|
9
|
+
_pointerSize: number;
|
|
10
|
+
_pointerStride: number;
|
|
11
|
+
_pointerType: number;
|
|
12
|
+
_pointerNormal: boolean;
|
|
13
|
+
_divisor: number;
|
|
14
|
+
_inputSize: number;
|
|
15
|
+
_inputStride: number;
|
|
16
|
+
constructor(ctx: GjsifyWebGLRenderingContext, idx: number);
|
|
17
|
+
_clear(): void;
|
|
18
|
+
}
|
|
19
|
+
export declare class WebGLVertexArrayGlobalAttribute {
|
|
20
|
+
_idx: number;
|
|
21
|
+
_data: Float32Array;
|
|
22
|
+
constructor(idx: number);
|
|
23
|
+
}
|
|
24
|
+
export declare class WebGLVertexArrayObjectState {
|
|
25
|
+
_attribs: WebGLVertexArrayObjectAttribute[];
|
|
26
|
+
_elementArrayBufferBinding: WebGLBuffer | null;
|
|
27
|
+
constructor(ctx: GjsifyWebGLRenderingContext);
|
|
28
|
+
setElementArrayBuffer(buffer: WebGLBuffer | null): void;
|
|
29
|
+
cleanUp(): void;
|
|
30
|
+
releaseArrayBuffer(buffer: WebGLBuffer): void;
|
|
31
|
+
setVertexAttribPointer(buffer: WebGLBuffer, index: number, pointerSize: number, pointerOffset: number, pointerStride: number, pointerType: number, pointerNormal: boolean, inputStride: number, inputSize: number): void;
|
|
32
|
+
}
|
|
33
|
+
export declare class WebGLVertexArrayGlobalState {
|
|
34
|
+
_arrayBufferBinding: WebGLBuffer | null;
|
|
35
|
+
_attribs: WebGLVertexArrayGlobalAttribute[];
|
|
36
|
+
constructor(ctx: GjsifyWebGLRenderingContext);
|
|
37
|
+
setArrayBuffer(buffer: WebGLBuffer | null): void;
|
|
38
|
+
}
|
package/meson.build
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
project('Gwebgl', ['c', 'vala'], version: '0.1')
|
|
2
|
+
|
|
3
|
+
root_dir = meson.current_source_dir()
|
|
4
|
+
|
|
5
|
+
vapi_dir = root_dir / 'src/vapi'
|
|
6
|
+
|
|
7
|
+
add_project_arguments(
|
|
8
|
+
[
|
|
9
|
+
'--vapidir', vapi_dir,
|
|
10
|
+
],
|
|
11
|
+
language: 'vala'
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
dependencies = [ dependency('glib-2.0'), dependency('gobject-2.0'), dependency('gdk-pixbuf-2.0'), dependency('gtk4'), dependency('epoxy')]
|
|
15
|
+
|
|
16
|
+
sources = files('src/vala/handle-types.vala', 'src/vala/webgl-rendering-context-base.vala', 'src/vala/webgl-rendering-context.vala')
|
|
17
|
+
|
|
18
|
+
libGwebgl = library('gwebgl', sources,
|
|
19
|
+
dependencies: dependencies,
|
|
20
|
+
vala_gir: meson.project_name() + '-0.1.gir',
|
|
21
|
+
install: true,
|
|
22
|
+
install_dir: [true, true, true, true]
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
g_ir_compiler = find_program('g-ir-compiler')
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# TODO not working if gwebgl-0.1.gir not exists
|
|
29
|
+
custom_target(meson.project_name() + '-0.1.typelib', command: [g_ir_compiler, '--shared-library', 'libgwebgl.so', '--output', '@OUTPUT@', meson.current_build_dir() / meson.project_name() + '-0.1.gir'],
|
|
30
|
+
#input: meson.current_build_dir() / meson.project_name() + '-0.1.gir',
|
|
31
|
+
output: meson.project_name() +'-0.1.typelib',
|
|
32
|
+
depends: libGwebgl,
|
|
33
|
+
install: true,
|
|
34
|
+
install_dir: get_option('libdir') / 'girepository-1.0')
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# Test app
|
|
38
|
+
test_sources = files('src/vala/handle-types.vala', 'src/vala/webgl-rendering-context-base.vala', 'src/vala/webgl-rendering-context.vala', 'src/test/app.vala')
|
|
39
|
+
executable('gwebgl_vala_app', test_sources, dependencies: dependencies)
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@gjsify/webgl",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "WebGL module for Gjs",
|
|
5
|
+
"main": "lib/cjs/index.js",
|
|
6
|
+
"module": "lib/esm/index.js",
|
|
7
|
+
"types": "lib/types/index.d.ts",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": {
|
|
12
|
+
"types": "./lib/types/index.d.ts",
|
|
13
|
+
"default": "./lib/esm/index.js"
|
|
14
|
+
},
|
|
15
|
+
"require": {
|
|
16
|
+
"types": "./lib/types/index.d.ts",
|
|
17
|
+
"default": "./lib/cjs/index.js"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"clear": "rm -rf lib tmp build test.gjs.js tsconfig.tsbuildinfo",
|
|
23
|
+
"print:name": "echo '@gjsify/webgl'",
|
|
24
|
+
"init:meson": "meson setup build .",
|
|
25
|
+
"init:meson:wipe": "yarn init:meson --wipe",
|
|
26
|
+
"build": "yarn print:name && yarn build:meson && yarn build:gjsify && yarn build:types",
|
|
27
|
+
"build:gjsify": "gjsify build --library 'src/ts/**/*.{ts,js}'",
|
|
28
|
+
"build:meson": "yarn init:meson && meson compile -C build",
|
|
29
|
+
"build:types": "tsc --project tsconfig.types.json || exit 0",
|
|
30
|
+
"build:test": "gjsify build src/ts/test.ts --app gjs --outfile test.gjs.js",
|
|
31
|
+
"test": "yarn print:name && yarn build:gjsify && yarn build:test && yarn test:gjs",
|
|
32
|
+
"test:gjs": "LD_LIBRARY_PATH=build GI_TYPELIB_PATH=build gjs -m test.gjs.js"
|
|
33
|
+
},
|
|
34
|
+
"keywords": [
|
|
35
|
+
"gjs",
|
|
36
|
+
"WebGL"
|
|
37
|
+
],
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@gjsify/cli": "^0.0.2",
|
|
40
|
+
"@gjsify/unit": "^0.0.2",
|
|
41
|
+
"@types/node": "^20.3.1",
|
|
42
|
+
"typescript": "^5.1.3"
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@girs/gio-2.0": "2.76.1-3.1.0",
|
|
46
|
+
"@girs/gjs": "^3.1.0",
|
|
47
|
+
"@girs/gtk-4.0": "4.10.4-3.1.0",
|
|
48
|
+
"@girs/gwebgl-0.1": "^0.1.0-3.1.0",
|
|
49
|
+
"@gjsify/html-image-element": "^0.0.2",
|
|
50
|
+
"@gjsify/utils": "^0.0.2",
|
|
51
|
+
"@types/bit-twiddle": "^1.0.1",
|
|
52
|
+
"bit-twiddle": "^1.0.2",
|
|
53
|
+
"glsl-tokenizer": "^2.1.5"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
using Gtk;
|
|
2
|
+
using Gwebgl;
|
|
3
|
+
|
|
4
|
+
int main (string[] argv) {
|
|
5
|
+
WebGLRenderingContext? gl = null;
|
|
6
|
+
// Create a new application
|
|
7
|
+
var app = new Gtk.Application ("gjsify.web.webgl.valaapp", GLib.ApplicationFlags.FLAGS_NONE);
|
|
8
|
+
app.activate.connect (() => {
|
|
9
|
+
var win = new Gtk.ApplicationWindow (app);
|
|
10
|
+
win.set_default_size(800, 600);
|
|
11
|
+
var glarea = new Gtk.GLArea ();
|
|
12
|
+
glarea.set_use_es(true);
|
|
13
|
+
glarea.set_required_version(3, 2);
|
|
14
|
+
|
|
15
|
+
glarea.realize.connect((widget) => {
|
|
16
|
+
print("\nrealize");
|
|
17
|
+
glarea.make_current ();
|
|
18
|
+
|
|
19
|
+
var error = glarea.get_error ();
|
|
20
|
+
if(error != null) {
|
|
21
|
+
printerr (error.message);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
glarea.render.connect((context) => {
|
|
27
|
+
print("\nrender");
|
|
28
|
+
|
|
29
|
+
var error = glarea.get_error ();
|
|
30
|
+
if(error != null) {
|
|
31
|
+
printerr (error.message);
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if(gl == null) {
|
|
36
|
+
int width = glarea.get_width ();
|
|
37
|
+
int height = glarea.get_height ();
|
|
38
|
+
gl = new Gwebgl.WebGLRenderingContext (width, height, true, true, false, false, true, false, false, false);
|
|
39
|
+
}
|
|
40
|
+
// Set clear color to black, fully opaque
|
|
41
|
+
gl.clearColor((float) 1.0, (float) 0.0, (float) 0.0, (float) 1.0);
|
|
42
|
+
|
|
43
|
+
// GL.glClearColor((GL.GLfloat) 0.0, (GL.GLfloat) 0.0, (GL.GLfloat) 0.0, (GL.GLfloat) 1.0);
|
|
44
|
+
|
|
45
|
+
// Clear the color buffer with specified clear color
|
|
46
|
+
var COLOR_BUFFER_BIT = gl.get_webgl_constants().get ("COLOR_BUFFER_BIT");
|
|
47
|
+
gl.clear(COLOR_BUFFER_BIT);
|
|
48
|
+
// GL.glClear(GL.GL_COLOR_BUFFER_BIT);
|
|
49
|
+
print("GL.GL_COLOR_BUFFER_BIT %i", GL.GL_COLOR_BUFFER_BIT);
|
|
50
|
+
print("COLOR_BUFFER_BIT %i", COLOR_BUFFER_BIT);
|
|
51
|
+
return true;
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
win.set_child (glarea);
|
|
55
|
+
win.present ();
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
app.run (argv);
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare module 'glsl-tokenizer/string' {
|
|
2
|
+
|
|
3
|
+
export interface Options {
|
|
4
|
+
version: '100' | '300 es';
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export type TokenType = 'block-comment' | 'line-comment' | 'preprocessor' | 'operator' | 'float' | 'ident' | 'builtin' | 'eof' | 'integer' | 'whitespace' | 'keyword';
|
|
8
|
+
|
|
9
|
+
export interface Token {
|
|
10
|
+
type: TokenType;
|
|
11
|
+
data: string;
|
|
12
|
+
position: number;
|
|
13
|
+
line: number;
|
|
14
|
+
column: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default function tokenString(src: string, opt?: Options): Token[];
|
|
18
|
+
}
|