1
+ 'use strict' ;
2
+
3
+ /* global goo */
4
+
5
+ var setup = function ( args , ctx ) {
6
+ var RenderTarget = goo . RenderTarget ;
7
+ var MeshData = goo . MeshData ;
8
+ var Shader = goo . Shader ;
9
+ var Quad = goo . Quad ;
10
+ var MeshDataComponent = goo . MeshDataComponent ;
11
+ var MeshRendererComponent = goo . MeshRendererComponent ;
12
+ var Material = goo . Material ;
13
+ var FullscreenUtils = goo . FullscreenUtils ;
14
+ var Transform = goo . Transform ;
15
+
16
+ var shader = {
17
+ attributes : {
18
+ vertexPosition : 'POSITION' ,
19
+ vertexUV0 : 'TEXCOORD0'
20
+ } ,
21
+ uniforms : { } ,
22
+ vshader : [
23
+ 'attribute vec3 vertexPosition;' ,
24
+ 'attribute vec2 vertexUV0;' ,
25
+ 'varying vec2 textureCoord;' ,
26
+
27
+ 'void main(void) {' ,
28
+ ' textureCoord = vertexUV0;' ,
29
+ ' gl_Position = vec4(vertexPosition.xy, 0.0, 1.0);' ,
30
+ '}'
31
+ ] . join ( '\n' ) ,
32
+ fshader : [
33
+ 'varying vec2 textureCoord;' ,
34
+
35
+ 'void main(void){' ,
36
+ ' gl_FragColor = vec4(textureCoord.xy, 0.0, 1.0);' ,
37
+ '}'
38
+ ] . join ( '\n' )
39
+ } ;
40
+
41
+ var renderable = {
42
+ meshData : FullscreenUtils . quad ,
43
+ materials : [ new Material ( shader ) ] ,
44
+ transform : new Transform ( )
45
+ } ;
46
+
47
+ var size = 64 ;
48
+ var renderer = ctx . world . gooRunner . renderer ;
49
+
50
+ ctx . renderTarget = new RenderTarget ( size , size ) ;
51
+ renderer . render ( renderable , FullscreenUtils . camera , [ ] , ctx . renderTarget , true ) ;
52
+ var pixels = new Uint8Array ( size * size * 4 ) ;
53
+ renderer . readPixels ( 0 , 0 , size , size , pixels ) ;
54
+
55
+ // Draw the pixels to a canvas element
56
+ var canvas = document . createElement ( 'CANVAS' ) ;
57
+ canvas . width = canvas . height = size ;
58
+ var context = canvas . getContext ( '2d' ) ;
59
+ var imgData = context . createImageData ( size , size ) ;
60
+ imgData . data . set ( pixels ) ;
61
+ context . putImageData ( imgData , 0 , 0 ) ;
62
+
63
+ var texture = new goo . Texture ( canvas , {
64
+ wrapS : 'EdgeClamp' ,
65
+ wrapT : 'EdgeClamp'
66
+ } , size , size ) ;
67
+ ctx . entity . meshRendererComponent . materials [ 0 ] . setTexture ( 'DIFFUSE_MAP' , texture ) ;
68
+ } ;
69
+
70
+ var cleanup = function ( args , ctx ) {
71
+ ctx . entity . meshRendererComponent . materials [ 0 ] . removeTexture ( 'DIFFUSE_MAP' ) ;
72
+ } ;
73
+
74
+ var update = function ( args , ctx ) {
75
+
76
+ } ;
77
+
78
+ var parameters = [ ] ;
0 commit comments