-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathloadshader.js
110 lines (92 loc) · 3.99 KB
/
loadshader.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
var currentPS =
'precision mediump float; \n\
void main() \n\
{ \n\
gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 ); \n\
} \n';
var reloadPS = false;
var currentVS =
'uniform mat4 u_mvpMatrix; \n\
attribute vec4 a_position; \n\
void main() \n\
{ \n\
gl_Position = u_mvpMatrix * a_position; \n\
} \n';
var reloadVS = false;
function loadcompletePS(e)
{
var span = document.createElement('span');
span.innerHTML = ['<p style="width:500px;border:2px solid#00F">', e.target.result, '</p>'].join('');
document.getElementById('list').insertBefore(span, null);
currentPS = e.target.result;
reloadPS = true;
}
function handleFileSelectPS(evt)
{
var files = evt.target.files; //FileList object
//File is a FileList of File objects. List some Properties
for(var i =0, f; f = files[i]; i++)
{
var reader = new FileReader();
reader.onload = loadcompletePS;
reader.readAsText(f);
}
}
function handleFileDropPS(evt)
{
evt.stopPropagation();
evt.preventDefault();
var files = evt.dataTransfer.files; //FileList object
//File is a FileList of File objects. List some Properties
for(var i =0, f; f = files[i]; i++)
{
var reader = new FileReader();
reader.onload = loadcompletePS;
reader.readAsText(f);
}
}
function loadcompleteVS(e)
{
//var span = document.createElement('span');
//span.innerHTML = ['<p style="width:500px;border:2px solid#00F">', e.target.result, '</p>'].join('');
//document.getElementById('list').insertBefore(span, null);
currentVS = e.target.result;
reloadVS = true;
}
function handleFileSelectVS(evt)
{
var files = evt.target.files; //FileList object
//File is a FileList of File objects. List some Properties
for(var i =0, f; f = files[i]; i++)
{
var reader = new FileReader();
reader.onload = loadcompleteVS;
reader.readAsText(f);
}
}
function handleFileDropVS(evt)
{
evt.stopPropagation();
evt.preventDefault();
var files = evt.dataTransfer.files; //FileList object
//File is a FileList of File objects. List some Properties
for(var i =0, f; f = files[i]; i++)
{
var reader = new FileReader();
reader.onload = loadcompleteVS;
reader.readAsText(f);
}
}
function handleDragOver(evt)
{
evt.stopPropagation();
evt.preventDefault();
}
document.getElementById('ps_files').addEventListener('change', handleFileSelectPS, false);
var ps_dropZone = document.getElementById('ps_drop_zone');
ps_dropZone.addEventListener('dragover', handleDragOver, false);
ps_dropZone.addEventListener('drop', handleFileDropPS, false);
document.getElementById('vs_files').addEventListener('change', handleFileSelectVS, false);
var vs_dropZone = document.getElementById('vs_drop_zone');
vs_dropZone.addEventListener('dragover', handleDragOver, false);
vs_dropZone.addEventListener('drop', handleFileDropVS, false);