Skip to content

Commit

Permalink
fix some problems
Browse files Browse the repository at this point in the history
  • Loading branch information
hikipuro committed Aug 27, 2018
1 parent 42d271d commit cea6436
Show file tree
Hide file tree
Showing 13 changed files with 341 additions and 167 deletions.
68 changes: 25 additions & 43 deletions src/Main.ts
Expand Up @@ -109,33 +109,6 @@ export class Main {
console.log(mm.mul(Tea.Vector4.one));
*/

var text = new Tea.TextMesh(this.app);
document.body.appendChild(text.canvas);
text.lineSpacing = 1;
//text.fontStyle = Tea.FontStyle.Normal;
//text.text = "aa\r\nBBB\ncc";
text.fontSize = 30;
text.text = "Hello world\nTest";
//text.color = Tea.Color.red;
//text.color.r = 1;
text.update();
//text.text = "test";
/*
var image = text.getImageData();
for (var y = 0; y < image.height; y++) {
for (var x = 0; x < image.width; x++) {
var index = (y * image.width + x) * 4;
var r = image.data[index];
var g = image.data[index + 1];
var bb = image.data[index + 2];
var a = image.data[index + 3];
console.log("image data", `${x}, ${y}`, r, g, bb, a);
}
}
//*/
//return;


const scene = this.app.createScene();
//scene.camera.far = 10;
//scene.camera.position.y = 2;
Expand Down Expand Up @@ -170,7 +143,7 @@ export class Main {
//console.log("camera", scene.camera.worldToCameraMatrix.toString());
//console.log("camera", scene.camera.projectionMatrix);

const script = new TestScript();
//const script = new TestScript();

const cube = Tea.Object3D.createPrimitive(this.app, Tea.PrimitiveType.Cube);
cube.name = "cube";
Expand All @@ -191,9 +164,9 @@ export class Main {

const sphere = Tea.Object3D.createPrimitive(this.app, Tea.PrimitiveType.Sphere);
//cube2.name = "cube2";
sphere.position.x = 1.6;
sphere.position.y = 2;
sphere.position.z = 1.5;
//sphere.position.x = 1.6;
//sphere.position.y = 2;
//sphere.position.z = 1.5;
//sphere.addScript(script);
//scene.appendChild(sphere);

Expand All @@ -207,7 +180,7 @@ export class Main {
quad.scale.x = 2;
quad.scale.y = 2;
//plain.addScript(script);
quad.addScript(new Rotate());
quad.addComponent(Rotate);
scene.appendChild(quad);
//this.plain = quad;

Expand Down Expand Up @@ -238,7 +211,7 @@ export class Main {
capsule.position.z = 2;
//capsule.scale.x = 2;
//capsule.rotation.x = Tea.radians(90);
capsule.addScript(script);
capsule.addComponent(TestScript);
scene.appendChild(capsule);

//console.log("capsule", capsule.localToWorldMatrix.toString());
Expand All @@ -256,21 +229,28 @@ export class Main {
lineRenderer.add(-3, 5, 0);
lineRenderer.add(0, 0, 7);
//lineRenderer.color = new Tea.Color(1, 0, 0, 1);
lines.addScript(new TestScript2());
lines.addComponent(TestScript2);
capsule.appendChild(lines);
//console.log("scale", lines.scale);
//scene.appendChild(lines);


var textmesh = this.app.createTextMesh();
var r = textmesh.getComponent(Tea.MeshRenderer);
(r.mesh as Tea.TextMesh).fontSize = 40;
//(r.mesh as Tea.TextMesh).color = Tea.Color.red;
//(r.mesh as Tea.TextMesh).color = Tea.Color.black;
(r.mesh as Tea.TextMesh).text = "Hello world\naあいうえお";
textmesh.scale.x = 3.1;
textmesh.scale.y = 1.5;
textmesh.position.z = -6;
//var r = textmesh.getComponent(Tea.MeshRenderer);
var meshFilter = textmesh.getComponent(Tea.MeshFilter);
var mesh = meshFilter.mesh as Tea.TextMesh;
mesh.characterSize = 0.3;
mesh.fontSize = 40;
//mesh.color = Tea.Color.red;
//mesh.color = Tea.Color.black;
//mesh.font = "Arial";
//mesh.text = "Hello world\naあいうえお";
mesh.update();
//textmesh.scale.x = 3.1;
//textmesh.scale.y = 1.5;
textmesh.position.y = 1;
textmesh.position.z = -5;
//document.body.appendChild(mesh.canvas);
//scene.appendChild(textmesh);

var wp = scene.camera.viewportToWorldPoint(new Tea.Vector3(0, 0, 0));
Expand Down Expand Up @@ -312,7 +292,9 @@ export class Main {
plane.renderer.shader.texture = texture;
capsule.renderer.shader.texture = texture;
*/
let r = cube.getComponent(Tea.Renderer);
let r = sphere.getComponent(Tea.Renderer);
r.material.mainTexture = texture;
r = cube.getComponent(Tea.Renderer);
//r.material.mainTexture = texture;
r = quad.getComponent(Tea.Renderer);
//r.material.mainTexture = texture;
Expand Down
71 changes: 33 additions & 38 deletions src/tea/App.ts
@@ -1,6 +1,4 @@
import * as Tea from "./Tea";
import { Keyboard } from "./Keyboard";
import { Mouse } from "./Mouse";

export class App {
canvas: HTMLCanvasElement;
Expand All @@ -17,12 +15,9 @@ export class App {
this.canvas.addEventListener("webglcontextrestored", this.onContextRestored);
this.init();

//this.context.getExtension('WEBGL_lose_context').loseContext();

this.parameters = new Tea.GLParameters(this.gl);
this.cursor = new Tea.Cursor(this);
this._renderer = new AppRenderer(this);
//this.clear();
}

static get absoluteURL(): string {
Expand Down Expand Up @@ -85,11 +80,11 @@ export class App {
return this._renderer.currentScene;
}

get keyboard(): Keyboard {
get keyboard(): Tea.Keyboard {
return this._renderer.keyboard;
}

get mouse(): Mouse {
get mouse(): Tea.Mouse {
return this._renderer.mouse;
}

Expand All @@ -98,22 +93,22 @@ export class App {
}

isExtensionSupported(name: Tea.GLExtensions | string): boolean {
const extensions = this.supportedExtensions;
var extensions = this.supportedExtensions;
return extensions.indexOf(name) >= 0;
}

createObject3D(): Tea.Object3D {
const object3d = new Tea.Object3D(this);
var object3d = new Tea.Object3D(this);
return object3d;
}

createScene(): Tea.Scene {
const scene = new Tea.Scene(this);
var scene = new Tea.Scene(this);
return scene;
}

createDefaultShader(): Tea.Shader {
const shader = new Tea.Shader(this);
var shader = new Tea.Shader(this);
shader.attach(
Tea.Shader.defaultVertexShaderSource,
Tea.Shader.defaultFragmentShaderSource
Expand All @@ -122,21 +117,20 @@ export class App {
}

createShader(vs: string, fs: string): Tea.Shader {
const shader = new Tea.Shader(this);
var shader = new Tea.Shader(this);
shader.attach(vs, fs);
return shader;
}

createMeshRenderer(mesh: Tea.Mesh, shader: Tea.Shader): Tea.MeshRenderer {
const renderer = new Tea.MeshRenderer(this);
renderer.mesh = mesh;
createMeshRenderer(shader: Tea.Shader): Tea.MeshRenderer {
var renderer = new Tea.MeshRenderer(this);
renderer.material.shader = shader;
return renderer;
}

createLineRenderer(): Tea.LineRenderer {
const renderer = new Tea.LineRenderer(this);
const shader = new Tea.Shader(this);
var renderer = new Tea.LineRenderer(this);
var shader = new Tea.Shader(this);
shader.attach(
Tea.Shader.lineVertexShaderSource,
Tea.Shader.lineFragmentShaderSource
Expand All @@ -146,7 +140,7 @@ export class App {
}

createTexture(image: HTMLImageElement): Tea.Texture {
const texture = new Tea.Texture(this);
var texture = new Tea.Texture(this);
texture.image = image;
return texture;
}
Expand All @@ -156,7 +150,7 @@ export class App {
}

drawArrays(): void {
const gl = this.gl;
var gl = this.gl;
gl.drawArrays(gl.TRIANGLES, 0, 3);
gl.flush();
}
Expand All @@ -170,25 +164,26 @@ export class App {
}

createTextMesh(): Tea.Object3D {
const object3d = new Tea.Object3D(this);
//const shader = this.createDefaultShader();
const shader = new Tea.Shader(this);
var object3d = new Tea.Object3D(this);
var shader = new Tea.Shader(this);
shader.attach(
Tea.Shader.textVertexShaderSource,
Tea.Shader.textFragmentShaderSource
);
const mesh = new Tea.TextMesh(this);
const renderer = object3d.addComponent(Tea.MeshRenderer);
var mesh = new Tea.TextMesh(this);
var meshFilter = object3d.addComponent(Tea.MeshFilter);
meshFilter.mesh = mesh;
var renderer = object3d.addComponent(Tea.MeshRenderer);
renderer.material.renderQueue = 3000;
renderer.material.mainTexture = mesh.texture;
renderer.material.shader = shader;
renderer.mesh = mesh;
object3d.name = "TextMesh";
return object3d;
}

protected init(): void {
this.gl = this.getWebGLContext();
const gl = this.gl;
var gl = this.gl;
gl.clearColor(0.0, 0.0, 0.0, 1.0);
gl.clearDepth(1.0);

Expand All @@ -206,10 +201,10 @@ export class App {
if (this.canvas == null) {
return;
}
const attribute: WebGLContextAttributes = {
var attribute: WebGLContextAttributes = {
antialias: false
};
let context = this.canvas.getContext(
var context = this.canvas.getContext(
"webgl", attribute
) as WebGLRenderingContext;
if (context == null) {
Expand All @@ -221,7 +216,7 @@ export class App {
}

protected onResize() {
//const gl = this.gl;
//var gl = this.gl;
//gl.viewport(100 / 2, 0, this.width, this.height);
//gl.scissor(100, 0, this.width, this.height);
}
Expand All @@ -245,8 +240,8 @@ class AppRenderer {
isStarted: boolean;
isPaused: boolean;
currentScene: Tea.Scene;
keyboard: Keyboard;
mouse: Mouse;
keyboard: Tea.Keyboard;
mouse: Tea.Mouse;
time: Tea.Time;
stats: Tea.Stats;
protected _handle: number;
Expand All @@ -256,8 +251,8 @@ class AppRenderer {
this.app = app;
this.isStarted = false;
this.isPaused = false;
this.keyboard = new Keyboard(document.body);
this.mouse = new Mouse(app, this.app.canvas);
this.keyboard = new Tea.Keyboard(document.body);
this.mouse = new Tea.Mouse(app, this.app.canvas);
this.time = new Tea.Time();
this._handle = 0;
this._prevRect = new Tea.Rect();
Expand Down Expand Up @@ -321,14 +316,14 @@ class AppRenderer {
}

protected setViewport(): void {
const gl = this.app.gl;
const camera = this.currentScene.camera;
var gl = this.app.gl;
var camera = this.currentScene.camera;

if (this._prevRect.equals(camera.rect)) {
return;
}

const rect = camera.rect.clone();
var rect = camera.rect.clone();
if (rect.x < 0) {
rect.width += rect.x;
rect.x = 0;
Expand All @@ -344,8 +339,8 @@ class AppRenderer {
rect.height = 1 - rect.y;
}

const width = this.app.width;
const height = this.app.height;
var width = this.app.width;
var height = this.app.height;

gl.viewport(
rect.x * width,
Expand Down

0 comments on commit cea6436

Please sign in to comment.