Skip to content

Commit

Permalink
feat: go back to WebGL1 with guarrenteed extensions. :(
Browse files Browse the repository at this point in the history
  • Loading branch information
bhouston committed Jun 23, 2020
1 parent 77d3f9c commit 4b21a2e
Show file tree
Hide file tree
Showing 67 changed files with 182 additions and 138 deletions.
6 changes: 2 additions & 4 deletions src/examples/gettingstarted/1_triangle/fragment.glsl
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
precision highp float;

in vec3 v_color;

out vec4 fragColor;
varying vec3 v_color;

void main() {

fragColor = vec4(v_color, 1.0);
gl_FragColor = vec4(v_color, 1.0);

}
8 changes: 4 additions & 4 deletions src/examples/gettingstarted/1_triangle/index.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import { makeFloat32Attribute, makeUint8Attribute } from "../../../lib/geometry/Attribute";
import { Geometry } from "../../../lib/geometry/Geometry";
import { ShaderMaterial } from "../../../lib/materials/ShaderMaterial";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl2/buffers/BufferGeometry";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl2/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl2/RenderingContext";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl/buffers/BufferGeometry";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl/RenderingContext";
import fragmentSourceCode from "./fragment.glsl";
import vertexSourceCode from "./vertex.glsl";

const geometry = new Geometry();
geometry.attributes["position"] = makeFloat32Attribute([0, 0.5, 0.5, -0.5, -0.5, -0.5], 2);
geometry.attributes["color"] = makeUint8Attribute([255, 0, 0, 0, 255, 0, 0, 0, 255], 3, true);

const material = new ShaderMaterial(vertexSourceCode, fragmentSourceCode, 300);
const material = new ShaderMaterial(vertexSourceCode, fragmentSourceCode);

const context = new RenderingContext();
const canvasFramebuffer = context.canvasFramebuffer;
Expand Down
6 changes: 3 additions & 3 deletions src/examples/gettingstarted/1_triangle/vertex.glsl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
in vec2 position;
in vec3 color;
attribute vec2 position;
attribute vec3 color;

out vec3 v_color;
varying vec3 v_color;

void main() {

Expand Down
3 changes: 1 addition & 2 deletions src/examples/gettingstarted/2_animatedUniforms/fragment.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@ precision highp float;

uniform vec3 color;

out vec4 fragColor;

void main() {

fragColor = vec4(color, 1.0);
gl_FragColor = vec4(color, 1.0);

}
6 changes: 3 additions & 3 deletions src/examples/gettingstarted/2_animatedUniforms/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ import { Geometry } from "../../../lib/geometry/Geometry";
import { ShaderMaterial } from "../../../lib/materials/ShaderMaterial";
import { Color } from "../../../lib/math/Color";
import { makeColorFromHSL } from "../../../lib/math/Color.Functions";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl2/buffers/BufferGeometry";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl2/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl2/RenderingContext";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl/buffers/BufferGeometry";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl/RenderingContext";
import fragmentSourceCode from "./fragment.glsl";
import vertexSourceCode from "./vertex.glsl";

Expand Down
2 changes: 1 addition & 1 deletion src/examples/gettingstarted/2_animatedUniforms/vertex.glsl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
in vec2 position;
attribute vec2 position;

uniform float scale;

Expand Down
6 changes: 2 additions & 4 deletions src/examples/gettingstarted/3_texturedPlane/fragment.glsl
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
precision highp float;

in vec2 v_texCoord;
varying vec2 v_texCoord;

uniform sampler2D map;

out vec4 fragColor;

void main() {

fragColor = texture(map, v_texCoord);
gl_FragColor = texture2D(map, v_texCoord);

}
8 changes: 4 additions & 4 deletions src/examples/gettingstarted/3_texturedPlane/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { plane } from "../../../lib/geometry/primitives/Plane";
import { fetchImage } from "../../../lib/io/loaders/Image";
import { ShaderMaterial } from "../../../lib/materials/ShaderMaterial";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl2/buffers/BufferGeometry";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl2/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl2/RenderingContext";
import { TexImage2D } from "../../../lib/renderers/webgl2/textures/TexImage2D";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl/buffers/BufferGeometry";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl/RenderingContext";
import { TexImage2D } from "../../../lib/renderers/webgl/textures/TexImage2D";
import { Texture } from "../../../lib/textures/Texture";
import fragmentSourceCode from "./fragment.glsl";
import vertexSourceCode from "./vertex.glsl";
Expand Down
6 changes: 3 additions & 3 deletions src/examples/gettingstarted/3_texturedPlane/vertex.glsl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
in vec3 position;
in vec2 uv;
attribute vec3 position;
attribute vec2 uv;

out vec2 v_texCoord;
varying vec2 v_texCoord;

void main() {

Expand Down
12 changes: 5 additions & 7 deletions src/examples/gettingstarted/4_lambertCube/fragment.glsl
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
precision highp float;

in vec3 v_viewPosition;
in vec3 v_viewNormal;
in vec2 v_uv;
varying vec3 v_viewPosition;
varying vec3 v_viewNormal;
varying vec2 v_uv;

uniform sampler2D map;
uniform vec3 viewLightPosition;

out vec4 fragColor;

void main() {

vec3 albedo = texture(map, v_uv).xyz;
vec3 albedo = texture2D(map, v_uv).xyz;
vec3 directionToLight = normalize( viewLightPosition - v_viewPosition );
float lambertianIntensity = dot( directionToLight, v_viewNormal );

fragColor = vec4( albedo * lambertianIntensity, 1.0 );
gl_FragColor = vec4( albedo * lambertianIntensity, 1.0 );

}
10 changes: 5 additions & 5 deletions src/examples/gettingstarted/4_lambertCube/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ import {
makeMatrix4Translation,
} from "../../../lib/math/Matrix4.Functions";
import { Vector3 } from "../../../lib/math/Vector3";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl2/buffers/BufferGeometry";
import { DepthTestFunc, DepthTestState } from "../../../lib/renderers/webgl2/DepthTestState";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl2/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl2/RenderingContext";
import { TexImage2D } from "../../../lib/renderers/webgl2/textures/TexImage2D";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl/buffers/BufferGeometry";
import { DepthTestFunc, DepthTestState } from "../../../lib/renderers/webgl/DepthTestState";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl/RenderingContext";
import { TexImage2D } from "../../../lib/renderers/webgl/textures/TexImage2D";
import { Texture } from "../../../lib/textures/Texture";
import fragmentSourceCode from "./fragment.glsl";
import vertexSourceCode from "./vertex.glsl";
Expand Down
12 changes: 6 additions & 6 deletions src/examples/gettingstarted/4_lambertCube/vertex.glsl
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
in vec3 position;
in vec3 normal;
in vec2 uv;
attribute vec3 position;
attribute vec3 normal;
attribute vec2 uv;

uniform mat4 localToWorld;
uniform mat4 worldToView;
uniform mat4 viewToScreen;

out vec3 v_viewPosition;
out vec3 v_viewNormal;
out vec2 v_uv;
varying vec3 v_viewPosition;
varying vec3 v_viewNormal;
varying vec2 v_uv;

void main() {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
precision highp float;

in vec3 v_viewPosition;
in vec3 v_viewNormal;
varying vec3 v_viewPosition;
varying vec3 v_viewNormal;

uniform samplerCube cubeMap;

out vec4 fragColor;

void main() {

vec3 reflectDir = reflect( normalize( v_viewPosition ),normalize(v_viewNormal) );
fragColor = texture(cubeMap, reflectDir);
gl_FragColor = textureCube(cubeMap, reflectDir);

}
10 changes: 5 additions & 5 deletions src/examples/gettingstarted/5_reflectivePolyhedral/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ import {
makeMatrix4Translation,
} from "../../../lib/math/Matrix4.Functions";
import { Vector3 } from "../../../lib/math/Vector3";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl2/buffers/BufferGeometry";
import { DepthTestFunc, DepthTestState } from "../../../lib/renderers/webgl2/DepthTestState";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl2/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl2/RenderingContext";
import { TexImage2D } from "../../../lib/renderers/webgl2/textures/TexImage2D";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl/buffers/BufferGeometry";
import { DepthTestFunc, DepthTestState } from "../../../lib/renderers/webgl/DepthTestState";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl/RenderingContext";
import { TexImage2D } from "../../../lib/renderers/webgl/textures/TexImage2D";
import { CubeTexture } from "../../../lib/textures/CubeTexture";
import fragmentSourceCode from "./fragment.glsl";
import vertexSourceCode from "./vertex.glsl";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
in vec3 position;
in vec3 normal;
attribute vec3 position;
attribute vec3 normal;

uniform mat4 localToWorld;
uniform mat4 worldToView;
uniform mat4 viewToScreen;

out vec3 v_viewPosition;
out vec3 v_viewNormal;
varying vec3 v_viewPosition;
varying vec3 v_viewNormal;

void main() {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
precision highp float;

in vec3 v_color;

out vec4 fragColor;
varying vec3 v_color;

void main() {

fragColor = vec4(v_color, 1.0);
gl_FragColor = vec4(v_color, 1.0);

}
6 changes: 3 additions & 3 deletions src/examples/gettingstarted/6_interleavedBuffers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { makeFloat32Attribute, makeUint8Attribute } from "../../../lib/geometry/
import { Geometry } from "../../../lib/geometry/Geometry";
import { convertToInterleavedGeometry } from "../../../lib/geometry/Geometry.Functions";
import { ShaderMaterial } from "../../../lib/materials/ShaderMaterial";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl2/buffers/BufferGeometry";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl2/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl2/RenderingContext";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl/buffers/BufferGeometry";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl/RenderingContext";
import fragmentSourceCode from "./fragment.glsl";
import vertexSourceCode from "./vertex.glsl";

Expand Down
6 changes: 3 additions & 3 deletions src/examples/gettingstarted/6_interleavedBuffers/vertex.glsl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
in vec2 position;
in vec3 color;
attribute vec2 position;
attribute vec3 color;

out vec3 v_color;
varying vec3 v_color;

void main() {

Expand Down
8 changes: 3 additions & 5 deletions src/examples/gettingstarted/7_metallicRoughness/fragment.glsl
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
precision highp float;

in vec3 v_viewPosition;
in vec3 v_viewNormal;
varying vec3 v_viewPosition;
varying vec3 v_viewNormal;

uniform samplerCube cubeMap;

out vec4 fragColor;

void main() {

vec3 reflectDir = reflect( normalize( v_viewPosition ),normalize(v_viewNormal) );
fragColor = texture(cubeMap, reflectDir);
gl_FragColor = textureCube(cubeMap, reflectDir);

}
10 changes: 5 additions & 5 deletions src/examples/gettingstarted/7_metallicRoughness/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ import {
makeMatrix4Translation,
} from "../../../lib/math/Matrix4.Functions";
import { Vector3 } from "../../../lib/math/Vector3";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl2/buffers/BufferGeometry";
import { DepthTestFunc, DepthTestState } from "../../../lib/renderers/webgl2/DepthTestState";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl2/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl2/RenderingContext";
import { TexImage2D } from "../../../lib/renderers/webgl2/textures/TexImage2D";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl/buffers/BufferGeometry";
import { DepthTestFunc, DepthTestState } from "../../../lib/renderers/webgl/DepthTestState";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl/RenderingContext";
import { TexImage2D } from "../../../lib/renderers/webgl/textures/TexImage2D";
import { CubeTexture } from "../../../lib/textures/CubeTexture";
import fragmentSourceCode from "./fragment.glsl";
import vertexSourceCode from "./vertex.glsl";
Expand Down
8 changes: 4 additions & 4 deletions src/examples/gettingstarted/7_metallicRoughness/vertex.glsl
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
in vec3 position;
in vec3 normal;
attribute vec3 position;
attribute vec3 normal;

uniform mat4 localToWorld;
uniform mat4 worldToView;
uniform mat4 viewToScreen;

out vec3 v_viewPosition;
out vec3 v_viewNormal;
varying vec3 v_viewPosition;
varying vec3 v_viewNormal;

void main() {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { PhysicalMaterial } from "../../../lib/materials/PhysicalMaterial";
import { PerspectiveCamera } from "../../../lib/nodes/cameras/PerspectiveCamera";
import { Mesh } from "../../../lib/nodes/Mesh";
import { Node } from "../../../lib/nodes/Node";
import { RenderingContext } from "../../../lib/renderers/webgl2/RenderingContext";
import { RenderingContext } from "../../../lib/renderers/webgl/RenderingContext";

const camera = new PerspectiveCamera(70, 0.01, 10);
camera.position.x = 1;
Expand Down
20 changes: 10 additions & 10 deletions src/examples/testing/testrig1/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@ import { PerspectiveCamera } from "../../../lib/nodes/cameras/PerspectiveCamera"
import { PointLight } from "../../../lib/nodes/lights/PointLight";
import { Mesh } from "../../../lib/nodes/Mesh";
import { Node } from "../../../lib/nodes/Node";
import { BlendState } from "../../../lib/renderers/webgl2/BlendState";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl2/buffers/BufferGeometry";
import { ClearState } from "../../../lib/renderers/webgl2/ClearState";
import { DepthTestState } from "../../../lib/renderers/webgl2/DepthTestState";
import { Attachments } from "../../../lib/renderers/webgl2/framebuffers/Attachments";
import { MaskState } from "../../../lib/renderers/webgl2/MaskState";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl2/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl2/RenderingContext";
import { TexImage2D } from "../../../lib/renderers/webgl2/textures/TexImage2D";
import { VertexArrayObject } from "../../../lib/renderers/webgl2/VertexArrayObject";
import { BlendState } from "../../../lib/renderers/webgl/BlendState";
import { makeBufferGeometryFromGeometry } from "../../../lib/renderers/webgl/buffers/BufferGeometry";
import { ClearState } from "../../../lib/renderers/webgl/ClearState";
import { DepthTestState } from "../../../lib/renderers/webgl/DepthTestState";
import { Attachments } from "../../../lib/renderers/webgl/framebuffers/Attachments";
import { MaskState } from "../../../lib/renderers/webgl/MaskState";
import { makeProgramFromShaderMaterial } from "../../../lib/renderers/webgl/programs/Program";
import { RenderingContext } from "../../../lib/renderers/webgl/RenderingContext";
import { TexImage2D } from "../../../lib/renderers/webgl/textures/TexImage2D";
import { VertexArrayObject } from "../../../lib/renderers/webgl/VertexArrayObject";
import debug_fragment from "../../../lib/shaders/materials/pbr/fragment.glsl";
import debug_vertex from "../../../lib/shaders/materials/pbr/vertex.glsl";
import { Texture } from "../../../lib/textures/Texture";
Expand Down
2 changes: 1 addition & 1 deletion src/lib/geometry/Attribute.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// * @bhouston
//

import { ComponentType, componentTypeSizeOf } from "../renderers/webgl2/buffers/ComponentType";
import { ComponentType, componentTypeSizeOf } from "../renderers/webgl/buffers/ComponentType";
import { AttributeData } from "./AttributeData";

export class Attribute {
Expand Down
2 changes: 1 addition & 1 deletion src/lib/geometry/AttributeData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import { generateUUID } from "../core/generateUuid";
import { IDisposable, IIdentifiable, IVersionable } from "../core/types";
import { IPoolUser } from "../renderers/Pool";
import { BufferTarget } from "../renderers/webgl2/buffers/BufferTarget";
import { BufferTarget } from "../renderers/webgl/buffers/BufferTarget";

export class AttributeData implements IIdentifiable, IVersionable, IDisposable, IPoolUser {
disposed = false;
Expand Down
2 changes: 1 addition & 1 deletion src/lib/geometry/Geometry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//

import { IDisposable, IVersionable } from "../core/types";
import { PrimitiveType } from "../renderers/webgl2/buffers/PrimitiveType";
import { PrimitiveType } from "../renderers/webgl/buffers/PrimitiveType";
import { Attribute } from "./Attribute";

export class Geometry implements IVersionable, IDisposable {
Expand Down
2 changes: 1 addition & 1 deletion src/lib/materials/ShaderMaterial.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export class ShaderMaterial implements IIdentifiable, IVersionable, IDisposable,
disposed = false;
name = "";

constructor(public vertexShaderCode: string, public fragmentShaderCode: string, public glslVersion = 300) {}
constructor(public vertexShaderCode: string, public fragmentShaderCode: string, public glslVersion = 200) {}

dirty(): void {
this.version++;
Expand Down
Loading

0 comments on commit 4b21a2e

Please sign in to comment.