Skip to content
This repository has been archived by the owner on Sep 23, 2024. It is now read-only.

Commit

Permalink
updated the public api of the renderer
Browse files Browse the repository at this point in the history
  • Loading branch information
AKST committed Sep 8, 2019
1 parent c440b23 commit 94dad51
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 17 deletions.
11 changes: 6 additions & 5 deletions src/main.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { checkExists } from '/src/util/types';
import { renderRoot } from '/src/renderer/runtime/runtime';
import { createElement } from '/src/renderer/element';
import { createProgram } from '/src/util/webgl/create';
import { createElement } from '/src/renderer/element';
import { Node } from '/src/renderer/state_tree/state_tree';
import { render } from '/src/renderer/index';
import { Main } from '/src/ui/main.ts';

const fragmentSource = `
Expand Down Expand Up @@ -41,7 +42,7 @@ document.addEventListener('DOMContentLoaded', function () {
const context = checkExists(canvas.getContext('webgl'), 'expected the context to exist');
const program = createProgram(context, vertexSource, fragmentSource);

renderRoot([
render([
createElement('set-program', {
program,
children: [
Expand All @@ -52,7 +53,7 @@ document.addEventListener('DOMContentLoaded', function () {
})
],
}),
], context, function onComplete(fiber) {
console.log(fiber);
], context, function onComplete(nodes: readonly Node[]) {
console.log(nodes);
});
});
14 changes: 14 additions & 0 deletions src/renderer/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { Element } from '/src/renderer/element';
import { Node } from '/src/renderer/state_tree/state_tree';
import { Painter } from '/src/renderer/runtime/painter';
import { createRenderer } from '/src/renderer/runtime/renderer';
import { createRuntime } from '/src/renderer/runtime/runtime';

export function render(
elements: Element[],
context: WebGLRenderingContext,
onComplete: (node: Node[]) => void,
) {
const runtime = createRuntime(new Painter(context), createRenderer(context));
onComplete(runtime.renderRoot(elements));
}
4 changes: 1 addition & 3 deletions src/renderer/runtime/renderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,7 @@ export class Renderer {
};
}

export function createRenderer(
context: WebGLRenderingContext,
) {
export function createRenderer(context: WebGLRenderingContext) {
const { requestIdleCallback, cancelIdleCallback } = createRequestIdleCallback();

return new Renderer(
Expand Down
13 changes: 4 additions & 9 deletions src/renderer/runtime/runtime.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { Element } from '/src/renderer/element';
import { Node } from '/src/renderer/state_tree/state_tree';
import { Painter } from './painter';
import { Renderer, createRenderer } from './renderer';
import { Renderer } from './renderer';

class Runtime {
export class Runtime {
private rootNodes: Node[] = [];

constructor(
Expand All @@ -24,11 +24,6 @@ class Runtime {
};
}

export function renderRoot(
elements: Element[],
context: WebGLRenderingContext,
onComplete: (node: Node[]) => void,
) {
const runtime = new Runtime(new Painter(context), createRenderer(context));
onComplete(runtime.renderRoot(elements));
export function createRuntime(painter: Painter, renderer: Renderer): Runtime {
return new Runtime(painter, renderer);
}

0 comments on commit 94dad51

Please sign in to comment.