changeset 2:55702e139f69 draft

3rd,show Notes and set Timing, but it is not completely.
author e105711 <yomitan.ie.u-ryukyu.ac.jp>
date Thu, 03 May 2012 00:52:06 +0900
parents 4fd71be3fb0b
children 4bcac064db6c
files webGL/DrumSimulator.html webGL/sound/BGM.ogg webGL/sound/cymbal.ogg webGL/sound/ftom.ogg webGL/sound/hclose.ogg webGL/sound/hopen.ogg webGL/sound/kick.ogg webGL/sound/snare.ogg webGL/src/J3DI.js webGL/src/Note.js webGL/src/const.js webGL/src/f4notes.js webGL/src/f4xml.js webGL/src/keybord.js webGL/src/mainfunc.js webGL/src/sound.js webGL/xml/back.xml webGL/xml/blue_notes.xml webGL/xml/line.xml webGL/xml/mainmode.xml webGL/xml/pink_notes.xml webGL/xml/test.xml webGL/xml/title.xml
diffstat 23 files changed, 1446 insertions(+), 125 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webGL/DrumSimulator.html	Thu May 03 00:52:06 2012 +0900
@@ -0,0 +1,130 @@
+<!DOCTYPE html> 
+
+<html> 
+  <head> 
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <title>WebGL test2</title> 
+    <script src="src/keybord.js"></script>
+    <script src="src/sound.js"></script>
+    <script src="src/J3DI.js"></script>
+    <script src="src/J3DIMath.js"></script>
+    <script src="src/f4xml.js"></script>
+    <script src="src/const.js"></script>
+    <script src="src/mainfunc.js"></script>
+    <script src="src/jkl-parsexml.js"></script>
+    <script src="src/f4notes.js"></script>
+    <script src="src/Note.js"></script>
+  </head> 
+  <script id="vshader" type="x-shader/x-vertex">
+    uniform mat4 u_modelViewProjMatrix;
+    uniform mat4 u_normalMatrix;
+    uniform vec3 lightDir;
+    
+    attribute vec3 vNormal;
+    attribute vec4 vTexCoord;
+    attribute vec4 vPosition;
+    
+    varying float v_Dot;
+    varying vec2 v_texCoord;
+    
+    void main()
+    {
+    gl_Position = u_modelViewProjMatrix * vPosition;
+    v_texCoord = vTexCoord.st;
+    vec4 transNormal = u_normalMatrix * vec4(vNormal,1);
+    v_Dot = max(dot(transNormal.xyz, lightDir), 0.0);
+    }
+  </script>
+  
+  <script id="fshader" type="x-shader/x-fragment">
+    #ifdef GL_ES
+    precision mediump float;
+    #endif
+    
+    uniform sampler2D sampler2d;
+    
+    varying float v_Dot;
+    varying vec2 v_texCoord;
+    
+    void main()
+    {
+    vec4 color = texture2D(sampler2d,v_texCoord);
+    color += vec4(0.1,0.1,0.1,1);
+    //    if(color.a == 1.0)color=vec4(1,0,0,1);
+    //    else color=vec4(0,1,1,1);
+    gl_FragColor = vec4(color.xyz * v_Dot, color.a);
+    //    gl_FragColor = vec4(color.xyz * v_Dot, 0.5);
+    }
+  </script> 
+  <script> 
+    
+    var WIDTH = 1024;
+    var HEIGHT = 640;
+    var MODE = TITLE;
+    notesArray = [];
+    var Interval = 20; 
+    function main(){
+    var c = document.getElementById("example");
+    c.width = WIDTH;
+    c.height = HEIGHT;
+    var ctx = init();
+    l = function(){loop(ctx)};
+    loadNotes();
+    loadSounds();
+    }
+    
+    function gameStart(){
+      setInterval(l,Interval);
+    }
+
+    function init(){
+    var gl = initWebGL("example","vshader","fshader",["vNormal","vTexCoord","vPosition"],[0,0,0,1],10000);
+    gl.uniform3f(gl.getUniformLocation(gl.program,"lightDir"),0,0,1);
+    gl.uniform1i(gl.getUniformLocation(gl.program,"sampler2d"),0);
+    gl.enable(gl.TEXTURE_2D);
+    parseXml(gl);
+    
+    return gl;
+    }
+    
+    function loop(ctx){ //main loop
+      gameRender(ctx,MODE);
+    }
+
+    width = -1;
+    height = -1;
+    
+    function reshape(ctx)
+    {
+    var canvas = document.getElementById('example');
+    if (canvas.width == width && canvas.width == height)
+    return;
+    
+    width = canvas.width;
+    height = canvas.height;
+    
+    ctx.viewport(0, 0, width, height);
+    
+    ctx.perspectiveMatrix = new J3DIMatrix4();
+    ctx.perspectiveMatrix.ortho(0, -200, 0, -140, 0, 10000);
+    }
+    
+  </script> 
+  <style type="text/css"> 
+    canvas {
+    border: 2px solid black;
+    }
+  </style> 
+  <body onload="main()" onkeydown="keybordDown()" onkeypress="keybordPress()" onkeyup="keybordUp()" style='overflow:scroll'>
+    <font size="4">
+      TITLE) SPACE:Go to MAIN MODE<br>
+      MAIN MODE)S:High-hat &nbsp;&nbsp; D:Snare  &nbsp;&nbsp; F:Kick  &nbsp;&nbsp; J:Tom  &nbsp;&nbsp; K:Cymbal  &nbsp;&nbsp; SPACE:Play/Stop &nbsp;&nbsp; <!--A:AUTO PLAY<br>-->
+      <!--  	AUTO PLAY)Q:Quit(Back to MAIN MODE)-->
+    </font>
+    <canvas id="example"> 
+      There is supposed to be an example drawing here, but it's not important.
+    </canvas> 
+    <div id="framerate"></div> 
+    <div id="console"></div> 
+  </body> 
+</html> 
Binary file webGL/sound/BGM.ogg has changed
Binary file webGL/sound/cymbal.ogg has changed
Binary file webGL/sound/ftom.ogg has changed
Binary file webGL/sound/hclose.ogg has changed
Binary file webGL/sound/hopen.ogg has changed
Binary file webGL/sound/kick.ogg has changed
Binary file webGL/sound/snare.ogg has changed
--- a/webGL/src/J3DI.js	Thu Apr 26 00:34:45 2012 +0900
+++ b/webGL/src/J3DI.js	Thu May 03 00:52:06 2012 +0900
@@ -45,7 +45,8 @@
 function initWebGL(canvasName, vshader, fshader, attribs, clearColor, clearDepth)
 {
     var canvas = document.getElementById(canvasName);
-    var gl = canvas.getContext("experimental-webgl");
+    //var gl = canvas.getContext("experimental-webgl");
+    var gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
     if (!gl) {
         alert("No WebGL context found");
         return null;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webGL/src/Note.js	Thu May 03 00:52:06 2012 +0900
@@ -0,0 +1,79 @@
+var Note = function(time,lane,BPM){
+
+    this.time = time;
+    this.lane = lane;
+
+    this.locate = - (time*BPM/(Interval*0.1));
+    this.alive = true;
+};
+
+Note.prototype.getTime = function(){
+    return this.time;
+};
+
+Note.prototype.getLane = function(){
+    return this.lane;
+};
+
+Note.prototype.getLocate = function(){
+    return this.locate;
+};
+
+Note.prototype.updLocate = function(BPM,sp){
+    //sp:HI-SPEED,BPM:Music's BPM
+    console.log(this.locate);
+    this.locate += BPM*0.01*sp;
+};
+
+Note.prototype.isAlive = function(){
+    return this.alive;
+};
+
+Note.prototype.kill = function(){
+    this.alive = false;
+    switch(this.lane){
+    case 1:
+	break;
+    case 2:
+	if(HCloseCnt%2==0){
+	    audioStop(audioHClose2);
+	    audioHClose.play();
+	}
+	else{
+	    audioStop(audioHClose);
+	    audioHClose2.play();
+	}
+	HCloseCnt++;
+	break;
+    case 3:
+	if(SnareCnt%2==0){
+	    audioStop(audioSnare2);
+	    audioSnare.play();
+	}
+	else{
+	    audioStop(audioSnare);
+	    audioSnare2.play();
+	}
+	SnareCnt++;
+	break;
+    case 4:
+	if(KickCnt%2==0){
+	    audioStop(audioKick2);
+	    audioKick.play();
+	}
+	else{
+	    audioStop(audioKick);
+	    audioKick2.play();
+	}
+	KickCnt++;
+	break;
+    case 5:
+	break;
+    case 6:
+	break;
+    case 7:
+	break;
+    case 8:
+	break;
+    }
+};
\ No newline at end of file
--- a/webGL/src/const.js	Thu Apr 26 00:34:45 2012 +0900
+++ b/webGL/src/const.js	Thu May 03 00:52:06 2012 +0900
@@ -1,3 +1,5 @@
 const TITLE = 0;
 const MENU = 1;
-const MAIN = 2;
\ No newline at end of file
+const MAIN = 2;
+const PLAY = 3;
+const READY = 4;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webGL/src/f4notes.js	Thu May 03 00:52:06 2012 +0900
@@ -0,0 +1,31 @@
+function drawNote(ctx,note){
+    if(note.getLocate() > 105 && note.isAlive())//105:line's locate
+	note.kill(); 
+    if(!note.isAlive())
+	return;
+    note.updLocate(121,1.0);
+    if(note.getLane()%2!=0){
+	PutSpriteF(ctx,58.984375+(note.getLane()-1)*11.71875,note.getLocate(),1,imgs[4]);
+    }
+    else{
+	PutSpriteF(ctx,58.984375+(note.getLane()-1)*11.71875,note.getLocate(),1,imgs[5]);
+    }
+}
+
+function loadNotes(){
+    notesArray.push(new Note(0,4,121));
+    notesArray.push(new Note(1.736,4,121));
+
+    notesArray.push(new Note(1.983,4,121));
+    notesArray.push(new Note(3.719,4,121));
+
+    notesArray.push(new Note(3.967,4,121));
+    notesArray.push(new Note(4.215,4,121));
+    notesArray.push(new Note(5.702,4,121));
+
+    notesArray.push(new Note(5.950,4,121));
+    notesArray.push(new Note(6.942,4,121));
+    notesArray.push(new Note(7.314,4,121));
+    notesArray.push(new Note(7.686,4,121));
+
+}
\ No newline at end of file
--- a/webGL/src/f4xml.js	Thu Apr 26 00:34:45 2012 +0900
+++ b/webGL/src/f4xml.js	Thu May 03 00:52:06 2012 +0900
@@ -1,11 +1,19 @@
 function parseXml(gl){
     imgs = [];
-    loadObjXml(gl,"./xml/title.xml");
+    loadObjXml(gl,"./xml/title.xml"); //0
     loadObjXml(gl,"./xml/press.xml");
-    loadObjXml(gl,"./xml/mainmode.xml");
+    loadObjXml(gl,"./xml/test.xml");
+    loadObjXml(gl,"./xml/line.xml");
+    loadObjXml(gl,"./xml/blue_notes.xml");
+    loadObjXml(gl,"./xml/pink_notes.xml"); //5
+    loadObjXml(gl,"./xml/back.xml");
     imgs.push(gl.obj["title"]);
     imgs.push(gl.obj["press"]);
-    imgs.push(gl.obj["mainmode"]);
+    imgs.push(gl.obj["test"]);
+    imgs.push(gl.obj["line"]);
+    imgs.push(gl.obj["blue_notes"]);
+    imgs.push(gl.obj["pink_notes"]);
+    imgs.push(gl.obj["back"]);
 }
 
 function loadObjXml(gl,url)
--- a/webGL/src/keybord.js	Thu Apr 26 00:34:45 2012 +0900
+++ b/webGL/src/keybord.js	Thu May 03 00:52:06 2012 +0900
@@ -9,89 +9,207 @@
 PlayingBGM = false;
 AUTO = false;
 
+function keyMain(key){
+    switch(key){
+    case "S":
+	if(!SPressed){
+	    SPressed = true;
+	    if(HCloseCnt%2==0){
+		audioStop(audioHClose2);
+		audioHClose.play();
+	    }
+	    else{
+		audioStop(audioHClose);
+		audioHClose2.play();
+	    }
+	    HCloseCnt++;
+	}
+	break;
+    case "D":
+	if(!DPressed){
+    	    DPressed = true;
+	    if(SnareCnt%2==0){
+		audioStop(audioSnare2);
+		audioSnare.play();
+	    }
+	    else{
+		audioStop(audioSnare);
+		audioSnare2.play();
+	    }
+	    SnareCnt++;
+	}
+	break;
+    case "F":
+	if(!FPressed){
+    	    FPressed = true;
+	    if(KickCnt%2==0){
+		audioStop(audioKick2);
+		audioKick.play();
+	    }
+	    else{
+		audioStop(audioKick);
+		audioKick2.play();
+	    }
+	    KickCnt++;
+	}
+	break;
+    case "J":
+	if(!JPressed){
+    	    JPressed = true;
+	    if(FtomCnt%2==0){
+		audioStop(audioFtom2);
+		audioFtom.play();
+	    }
+	    else{
+		audioStop(audioFtom);
+		audioFtom2.play();
+	    }
+	    FtomCnt++;
+	}
+	break;
+    case "K":
+	if(!KPressed){
+    	    KPressed = true;
+	    if(CymbalCnt%2==0){
+		audioStop(audioCymbal2);
+		audioCymbal.play();
+	    }
+	    else{
+		audioStop(audioCymbal);
+		audioCymbal2.play();
+	    }
+	    CymbalCnt++;
+	}
+	break;
+    case " ":
+	if(!SpacePressed){
+    	    SpacePressed = true;
+	    PlayingBGM = true;
+	    pl = function(){audioBGM.play()};
+	    var setTime = Interval*105.0*100.0/121.0;
+	    setTimeout(pl,setTime);
+	    MODE = PLAY;
+	}
+	break;
+    default:
+	break;
+    }
+}
+
+function keyPlay(key){
+    switch(key){
+    case "S":
+	if(!SPressed){
+	    SPressed = true;
+	    if(HCloseCnt%2==0){
+		audioStop(audioHClose2);
+		audioHClose.play();
+	    }
+	    else{
+		audioStop(audioHClose);
+		audioHClose2.play();
+	    }
+	    HCloseCnt++;
+	}
+	break;
+    case "D":
+	if(!DPressed){
+    	    DPressed = true;
+	    if(SnareCnt%2==0){
+		audioStop(audioSnare2);
+		audioSnare.play();
+	    }
+	    else{
+		audioStop(audioSnare);
+		audioSnare2.play();
+	    }
+	    SnareCnt++;
+	}
+	break;
+    case "F":
+	if(!FPressed){
+    	    FPressed = true;
+	    if(KickCnt%2==0){
+		audioStop(audioKick2);
+		audioKick.play();
+	    }
+	    else{
+		audioStop(audioKick);
+		audioKick2.play();
+	    }
+	    KickCnt++;
+	}
+	break;
+    case "J":
+	if(!JPressed){
+    	    JPressed = true;
+	    if(FtomCnt%2==0){
+		audioStop(audioFtom2);
+		audioFtom.play();
+	    }
+	    else{
+		audioStop(audioFtom);
+		audioFtom2.play();
+	    }
+	    FtomCnt++;
+	}
+	break;
+    case "K":
+	if(!KPressed){
+    	    KPressed = true;
+	    if(CymbalCnt%2==0){
+		audioStop(audioCymbal2);
+		audioCymbal.play();
+	    }
+	    else{
+		audioStop(audioCymbal);
+		audioCymbal2.play();
+	    }
+	    CymbalCnt++;
+	}
+	break;
+    case " ":
+	if(!SpacePressed){
+    	    SpacePressed = true;
+	    audioStop(audioBGM);
+	    PlayingBGM = false;
+	    MODE = MAIN;
+	}
+	break;
+    default:
+	break;
+    }
+}
+
+function keyTitle(key){
+    switch(key){
+    case " ":
+	if(!SpacePressed){
+	    SpacePressed = true;
+	    MODE = MAIN;
+	}
+	break;
+    default:
+	break;
+    }
+}
+
 function keybordDown()
 {
 
     var keyChar = String.fromCharCode(event.keyCode);
-    if(keyChar == "S" && !SPressed && MODE==MAIN) {
-	SPressed = true;
-	if(HCloseCnt%2==0){
-	    audioStop(audioHClose2);
-	    audioHClose.play();
-	}
-	else{
-	    audioStop(audioHClose);
-	    audioHClose2.play();
-	}
-	HCloseCnt++;
-    }
-    if(keyChar == "D" && !DPressed && MODE==MAIN) {
-	DPressed = true;
-	if(SnareCnt%2==0){
-	    audioStop(audioSnare2);
-	    audioSnare.play();
-	}
-	else{
-	    audioStop(audioSnare);
-	    audioSnare2.play();
-	}
-	SnareCnt++;
-    }
-    if(keyChar == "F" && !FPressed && MODE==MAIN) {
-	FPressed = true;
-	if(KickCnt%2==0){
-	    audioStop(audioKick2);
-	    audioKick.play();
-	}
-	else{
-	    audioStop(audioKick);
-	    audioKick2.play();
-	}
-	KickCnt++;
+    switch(MODE){
+    case TITLE:
+	keyTitle(keyChar);
+	break;
+    case MAIN:
+	keyMain(keyChar);
+	break;
+    case PLAY:
+//	keyPlay(keyChar);
+	break;
     }
-    if(keyChar == "J" && !JPressed && MODE==MAIN) {
-	JPressed = true;
-	if(FtomCnt%2==0){
-	    audioStop(audioFtom2);
-	    audioFtom.play();
-	}
-	else{
-	    audioStop(audioFtom);
-	    audioFtom2.play();
-	}
-	FtomCnt++;
-    }
-    if(keyChar == "K" && !KPressed && MODE==MAIN) {
-	KPressed = true;
-	if(CymbalCnt%2==0){
-	    audioStop(audioCymbal2);
-	    audioCymbal.play();
-	}
-	else{
-	    audioStop(audioCymbal);
-	    audioCymbal2.play();
-	}
-	CymbalCnt++;
-    }
-    
-    if(keyChar == " " && !SpacePressed){
-	SpacePressed = true;
-	if(MODE==TITLE){
-	    MODE = MAIN;
-	}
-	else{
-	    if(!PlayingBGM){
-		PlayingBGM = true;
-		console.log("play");
-		audioBGM.play();
-	    }
-	    else{
-		console.log("stop");
-		audioStop(audioBGM);
-		PlayingBGM = false;
-	    }
-	}
-    }	
+
     console.log("Key: Pushed '"+keyChar+"'");
     
 }
--- a/webGL/src/mainfunc.js	Thu Apr 26 00:34:45 2012 +0900
+++ b/webGL/src/mainfunc.js	Thu May 03 00:52:06 2012 +0900
@@ -1,29 +1,47 @@
 function gameRender(ctx,MODE){
-	switch(MODE){
-	case TITLE:
-		titleRender(ctx);
-		break;
-	case MAIN:
-		mainRender(ctx);
-		break;
-	}
+    switch(MODE){
+    case TITLE:
+	titleRender(ctx);
+	break;
+    case MAIN:
+	mainRender(ctx);
+	break;
+    case PLAY:
+	playRender(ctx);
+    }
 }
 
 function titleRender(ctx){
-	reshape(ctx);
-    ctx.clearColor(0,0,0,1);
+    reshape(ctx);
+    ctx.clearColor(0,0,0.15,1);
     ctx.clear(ctx.COLOR_BUFFER_BIT | ctx.DEPTH_BUFFER_BIT);
     PutSpriteF(ctx,100,30,1,imgs[0]);
-    PutSpriteF(ctx,98,90,1,imgs[1]);
+    PutSpriteF(ctx,100,90,1,imgs[1]);
+    PutSpriteF(ctx,100,70,1,imgs[6]);
     ctx.flush();
 }
 
 function mainRender(ctx){
-	reshape(ctx);
-    ctx.clearColor(0,0,0,1);
+    reshape(ctx);
+    ctx.clearColor(0,0,0.15,1);
     ctx.clear(ctx.COLOR_BUFFER_BIT | ctx.DEPTH_BUFFER_BIT);
-	if(!AUTO){
-		PutSpriteF(ctx,100,30,1,imgs[2]);
-	}
+    PutSpriteF(ctx,100,7.8125,1,imgs[2]);
+    PutSpriteF(ctx,100,105,1,imgs[3]);  //y == 480
+
+    PutSpriteF(ctx,100,70,1,imgs[6]);
+    ctx.flush();
+}
+
+function playRender(ctx){
+    reshape(ctx);
+    ctx.clearColor(0,0,0.15,1);
+    ctx.clear(ctx.COLOR_BUFFER_BIT | ctx.DEPTH_BUFFER_BIT);
+    PutSpriteF(ctx,100,7.8125,1,imgs[2]);
+    PutSpriteF(ctx,100,105,1,imgs[3]);  //y == 480
+    for(i=0;i<notesArray.length;i++){
+//	notesArray[i].updLocate(150,1.0);
+	drawNote(ctx,notesArray[i]);
+    }
+    PutSpriteF(ctx,100,70,1,imgs[6]);
     ctx.flush();
 }
\ No newline at end of file
--- a/webGL/src/sound.js	Thu Apr 26 00:34:45 2012 +0900
+++ b/webGL/src/sound.js	Thu May 03 00:52:06 2012 +0900
@@ -1,23 +1,63 @@
-var audioHClose = window.Audio && new Audio("sound/hclose.wav");
-var audioHClose2 = window.Audio && new Audio("sound/hclose.wav");
-var audioHOpen = window.Audio && new Audio("sound/hopen.wav");
-var audioHOpen2 = window.Audio && new Audio("sound/hopen.wav");
-var audioFtom = window.Audio && new Audio("sound/ftom.wav");
-var audioFtom2 = window.Audio && new Audio("sound/ftom.wav");
-var audioCymbal = window.Audio && new Audio("sound/cymbal.wav");
-var audioCymbal2 = window.Audio && new Audio("sound/cymbal.wav");
-var audioKick = window.Audio && new Audio("sound/kick.wav");
-var audioKick2 = window.Audio && new Audio("sound/kick.wav");
-var audioSnare = window.Audio && new Audio("sound/snare.wav");
-var audioSnare2 = window.Audio && new Audio("sound/snare.wav");
-var audioBGM = window.Audio && new Audio("sound/BGM.wav");
-
+var filesLoaded = 0;
+var filesToLoad = 13;
 var CymbalCnt = 0;
 var HCloseCnt = 0;
 var HOpenCnt = 0;
 var FtomCnt = 0;
 var KickCnt = 0;
 var SnareCnt = 0;
+/*
+
+var audioHClose;
+var audioHClose2;
+var audioHOpen;
+var audioHOpen2;
+var audioFtom;
+var audioFtom2;
+var audioCymbal;
+var audioCymbal2;
+var audioKick;
+var audioKick2;
+var audioSnare;
+var audioSnare2;
+var audioBGM;
+*/
+
+function loadSounds(){
+    
+    audioHClose = loadAudio("sound/hclose.ogg");
+    audioHClose2 = loadAudio("sound/hclose.ogg");
+    audioHOpen = loadAudio("sound/hopen.ogg");
+    audioHOpen2 = loadAudio("sound/hopen.ogg");
+    audioFtom = loadAudio("sound/ftom.ogg");
+    audioFtom2 = loadAudio("sound/ftom.ogg");
+    audioCymbal = loadAudio("sound/cymbal.ogg");
+    audioCymbal2 = loadAudio("sound/cymbal.ogg");
+    audioKick = loadAudio("sound/kick.ogg");
+    audioKick2 = loadAudio("sound/kick.ogg");
+    audioSnare = loadAudio("sound/snare.ogg");
+    audioSnare2= loadAudio("sound/snare.ogg");
+    audioBGM = loadAudio("sound/BGM.ogg");
+
+}
+
+function loadAudio(filepath){
+    audioVar = new Audio();
+    audioVar.addEventListener('canplaythrough', isAppLoaded, false);
+    console.log("loading");
+    audioVar.src = filepath;
+    return audioVar;
+}
+
+function isAppLoaded()
+{
+    filesLoaded++;
+    if (filesLoaded == filesToLoad){
+	console.log("called");
+	gameStart();
+    }
+}
+
 
 function audioStop(audioFile){
     if(!audioFile.ended){
@@ -33,4 +73,8 @@
 
 function getBGMTime(){
     return audioBGM.currentTime;
+}
+
+function getLoadedCnt(){
+    return filesLoaded;
 }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webGL/xml/back.xml	Thu May 03 00:52:06 2012 +0900
@@ -0,0 +1,249 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="back" size="6" prim="Triangle" parent="NULL">
+		<coordinate>
+			-100.000000 -70.000000 0.000000
+			100.000000 -70.000000 0.000000
+			100.000000 70.000000 0.000000
+			100.000000 70.000000 0.000000
+			-100.000000 70.000000 0.000000
+			-100.000000 -70.000000 0.000000
+		</coordinate>
+		<normal>
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+		</texture>
+		<image name="back.png">
+iVBORw0KGgoAAAANSUhEUgAABAAAAAKACAYAAAACfQphAAAX/WlDQ1BJQ0MgUHJv
+ZmlsZQAAWIWVWQk4VV/X3+eeO5jnebzmeZ7JPF7zlDm5rnmeiSRpkCFC5gglIpS/
+IRpQ0SClolFdSYiKpEzxHVL/9/u/7/t8z7efZ+/zs87aa6+91jpr7+UCwPUXMSIi
+BMUAQGhYTJS9qQHexdUNj3sNUAAGjAACikRSdIS+ra0l+K/t+yjCh7QnMluy/jvf
+f2yMPr7RJAAgWwR7+0STQhH8FwBwJykiKgYAzJY84fiYiC2ci2CWKERBBJ/dwv6/
+cOcW9v6FB7d5HO0NEUwGgIKGSIzyB4B2DqHj40j+iBw6GgCwTGE+gWEIKx7BOqQA
+og8AXF4Ij3RoaPgWzkKwuPe/yPH/XzK9/8gkEv3/4F972W4URoHRESHEff9Pc/zf
+LTQk9vcafEiniQ52sECebIjdEkhEYwcEcyD4RIAvwXKHXhsRY2C/Q78aGENw3LIR
+gp8GxJrt3sHTscG79RHMg+D14HCLLX7ETiiOMG9rGwQzIViYFG3o9ksmSjUxwNF5
+h8fSx9fIGMFIFKFcosLtf/MHRMc5/KYnJgYYWv/mDyKab/mbDsEZxKjtvSA6oIp9
+Q0y31hVEcGNEjK3jzlpDYSHWO3tBvfeLMrHfwau+0dv73V4rJsDR7Jd8mCEGCYBf
+MmEev0ATwi8dYPmAKLPfdL2IkO2YRubCjlGx9lt2EEawn2/Y7h2ZcIYP0cjil03g
+cmACiCAK+AJvEAZ+AjywBIbAaGfEI/QwZCSBcBCC9Cg8/e83mA+YYcw7zAiGjHnx
+h9vwNx8IBD7I8zed9C90B5AIPiFSfUH079XQXGgdtBbaEhn1kK6IVkdr/H43NNcx
+90erX7r6I3NldigGO9rH/av2ewMPRf1jjvefGf+ukwl4vy11h0O+QX5Gfv33/L93
+jDXGGmHNsCZYCTgdboUH4F74LnwV7gB4+AbcCQ/C17bwP1Yh7lglanu/FsiKviB2
++6+w/6hR7B+OHSqdJJ0KsN/mD0beBf5ZwWlb68B/kxKLdG9EUhDyzuLPHn9bWhSx
+rgraAK2N2BmxMZoNzQVk0MqIxfXRuogPVBCq4T9n7YwywG/blnHbewkGHxAcGuOb
+ELMV6IbhEfuiAv0DYvD6SLb0lcYTwkiy0nhFeQVFsJV7f33ai/bbORVie/g3LRj5
+ZtTeIsSyv2m+NQB07AKAMuVvmsgEEu7vAbjDRIqNivtFQ28NGEAF6JHo50QyhxAQ
+R/RUBKpAC+gBY2AObIAjcAWeiHUDQCiicTzYD1LBUZAJcsEpUAoqQQ2oAxfBZdAB
+roJe0A/ug0dgBLwCZDAJZsE8+A7WIAjCQbQQM8QJ8UMikBSkCKlDOpAxZAnZQ66Q
+F+QPhUGx0H4oDcqE8qBSqAqqhy5BV6Be6C40DL2AxqEZ6Cu0ioJRNCgWFC9KFCWH
+UkfpoyxQjqg9KH9UJCoRdRh1AlWMqkY1otpRvaj7qBEUGTWLWoIBTA2zwQKwDKwO
+G8I2sBvsB0fBB+AMuBCuhpvgLiQWn8BkeA5eQWPRzGg8WgbxpBl6N5qEjkQfQGeh
+S9F16Hb0LfQT9Dh6Hr2BocXwYKQwmhgCxgXjj4nHHMUUYmoxbZjbyPc8ifmOxWLZ
+sGJYNSTaXbFB2CRsFvY0thnbgx3GTmCXcDgcJ04Kp42zwRFxMbijuBJcI+4G7jFu
+ErdMQU3BT6FIYULhRhFGcYiikOICxXWKxxRTFGuUDJQilJqUNpQ+lPsocyjPUnZR
+PqScpFyjYqQSo9KmcqQKokqlKqZqorpN9ZpqkZqaWpBag9qOOpD6IHUxdQv1Hepx
+6hUaJhpJGkMaD5pYmhM052l6aF7QLNLS0orS6tG60cbQnqCtp71J+4Z2mY6ZTpaO
+QOdDl0JXRtdO95juMz0lvQi9Pr0nfSJ9IX0r/UP6OQZKBlEGQwYiwwGGMoYrDM8Y
+lhiZGRUYbRhDGbMYLzDeZZxmwjGJMhkz+TAdZqphusk0wQwzCzEbMpOY05jPMt9m
+nmTBsoixEFiCWDJZLrIMscyzMrEqszqxJrCWsV5jJbPBbKJsBLYQthy2y2yjbKvs
+vOz67L7sx9mb2B+z/+Dg5tDj8OXI4GjmGOFY5cRzGnMGc57k7OAc40JzSXLZccVz
+VXDd5prjZuHW4iZxZ3Bf5n7Jg+KR5LHnSeKp4RnkWeLl4zXljeAt4b3JO8fHxqfH
+F8RXwHedb4afmV+HP5C/gP8G/0c8K14fH4Ivxt/CzwvwCJgJxApUCQwJrAmKCe4W
+PCTYLDgmRCWkLuQnVCDUJzQvzC9sJbxfuEH4pQiliLpIgEiRyIDID1ExUWfRY6Id
+otNiHGIEsUSxBrHX4rTiuuKR4tXiTyWwEuoSwRKnJR5JoiRVJAMkyyQfSqGkVKUC
+pU5LDUtjpDWkw6SrpZ/J0Mjoy8TJNMiMy7LJWsoeku2Q/SwnLOcmd1JuQG5DXkU+
+RP6s/CsFJgVzhUMKXQpfFSUVSYplik+VaJVMlFKUOpUWlKWUfZUrlJ+rMKtYqRxT
+6VP5qaqmGqXapDqjJqzmpVau9kydRd1WPUv9jgZGw0AjReOqxoqmqmaM5mXNL1oy
+WsFaF7Smd4nt8t11dteEtqA2UbtKm6yD1/HSOaND1hXQJepW677TE9Lz0avVm9KX
+0A/Sb9T/bCBvEGXQZvDDUNMw2bDHCDYyNcowGjJmMt5tXGr8xkTQxN+kwWTeVMU0
+ybTHDGNmYXbS7BmBl0Ai1BPmzdXMk81vWdBYOFiUWryzlLSMsuyyQlmZW+VbvbYW
+sQ6z7rABNgSbfJsxWzHbSNtuO6ydrV2Z3Qd7Bfv99gMOzA57HS44fHc0cMxxfLVb
+fHfs7j4neicPp3qnH85GznnOZBc5l2SX+65croGunW44Nye3Wrcld2P3U+6THioe
+Rz1G94jtSdhz15PLM8Tz2l76vcS9rV4YL2evC17rRBtiNXHJm+Bd7j1PMiQVkWZ9
+9HwKfGZ8tX3zfKf8tP3y/Kb9tf3z/WcCdAMKA+YCDQNLAxeCzIIqg34E2wSfD94M
+cQ5pDqUI9Qq9EsYUFhx2K5wvPCF8OEIq4mgEOVIz8lTkfJRFVG00FL0nujOGBbnk
+DsaKxx6JHY/TiSuLW453im9NYEwISxjcJ7nv+L6pRJPEc0noJFJS336B/an7x5P1
+k6sOQAe8D/SlCKUcTpk8aHqwLpUqNTj1wSH5Q3mHvqU5p3Ud5j188PDEEdMjDUfp
+jkYdfXZM61hlOjo9MH3ouNLxkuMbGT4Z9zLlMwsz17NIWfeyFbKLszdP+J0YylHN
+qcjF5obljp7UPVmXx5iXmDeRb5XfXoAvyCj4dmrvqbuFyoWVRVRFsUXkYsvizhLh
+ktyS9dKA0pEyg7Lmcp7y4+U/TvucflyhV9FUyVuZWbl6JvDM8yrTqvZq0erCGmxN
+XM2Hs05nB86pn6uv5arNrP15Puw8uc6+7la9Wn39BZ4LOQ2ohtiGmUaPxkcXjS52
+Nsk0VTWzNWe2gJbYlo+XvC6NXra43Neq3tr0l8hf5W3MbRntUPu+9vmOgA5yp2vn
+8BXzK31dWl1t3bLd568KXC27xnot5zrV9cPXN28k3ljqieiZ6/Xvnejb2/fqpsvN
+p7fsbg3dtrh9p9+k/+aA/sCNO9p3rt7VvHvlnvq9jvuq99sHVQbbHqg8aBtSHWp/
+qPaw85HGo67hXcPXH+s+7n1i9KT/KeHp/RHrkeHR3aPPn3k8Iz/3eT79IuTFwsu4
+l2uvDr7GvM4YYxgrfMPzpvqtxNtmsir52rjR+OA7h3evJkgTs++j369PHv5A+6Fw
+in+qflpx+uqMycyjj+4fJ2cjZtfmjn5i/FT+WfzzX1/0vgzOu8xPLkQtbH7NWuRc
+PP9N+Vvfku3Sm++h39d+ZCxzLtetqK8MrDqvTq3Fr+PWi39K/OzasNh4vRm6uRlB
+jCJuXwVgpKP8/AD4eh6pW1wBYH4EABXdr9pop8HI5QOFPHlBGoSHLqIIqI/wSbQx
+BoW5hI3HWVAIUsKUc1TT1BM0c7Q/6XkY1Bg9mU4w97Ass6mwJ3P0cFFwE3gyeO/y
+Y/G7BIIFTwl1CD8T+SwGxGkkmCTZpTikyNIVMu6y7LJP5fLkbRUYFB4pnlSyV2ZR
+HlUpUfVQw6tNqFdr7NXk0XyhVbJrj7aQ9pzOVd2TesH65gbyhjxGNMbAeMVk2XTN
+7Cdh0wKyhK3Q1hgbjC3aDrZHOQCHTcdNJxpnCRdL1xC3E+4XPe7v+eC56cVGlPTW
+Jln5ePgG+MX6pwUUB14KGgpeCOUKMwmPj2iIJEezxVjGpsa1xo8mzCXCSdz71ZKd
+DiSmVB18kLqRpnQ45Ej90el0zuMqGXaZIVnHs8+f6M+ZOUmTp5S/p+D4qc7C6WKt
+kvYyqfLSClQl6Ux3NW2N69mqc5PnxeuC6i9euN0w0jh1cb2ZvUXt0t7LJ1oH2nDt
+Nh3lnfNdct2WV32v7b9+4sbpnrreS30dN7tvXb/d23974N6dJ3ef3Lt/v3Ow6EHQ
+kPLQ0sPGR57DdMPdj1OfuD/VGxEaxYxOPrv5vPJF0kunVwqvaV5Pjz140/X2HDln
+PPad84Tae5b3nyf7P5yeipm2nBH/SPFxarZ/rubTwc/uX5TnaeffL3R9zVkM++a2
+ZPXd5IfJstWK+2r42rH1mp+9G+TNzR3/80CnUOKoLtgB/o4uw9hhWbBDuHyKQEoL
+Kjlqbho6WkY6Rno8gxKjBZM/cwZLO+skOz2HPmcYVyl3L88UHxW/MF5DwELQSchd
+2E3ESdRSTEdcRvyDRKGkgeQnqRJpY+kFmdOyBNlFuQp5c/klhSpFa8UVpXPK9srL
+KpWqZqpf1IrU9dSnNXI1NTTJWum7FHe90E7TkdEZ163Wi9Q3NGAzmDW8ZVRhnGji
+bKpmxmm2Rnhr3mdx3jLbKs7ay8bSVsNOzJ7dAeew4ji3m+w04nzfpRc5B5rcqzwK
+92R5Htmb4pVE3Oe9j5Tkc9D3iF+2/6mA04HnguqCL4a0Ilm7J/xOxOPI11HT0Uux
+6DiWeJEE5X16iZZJrvv9kqMPpKbkHjyT2nKoL+3p4ekjP48JpXseL8kYzqLI1j4R
+mVOTO5KHzVctCDhVWni/aKGEsVSxzLE84XRFRX/lQhV/tW3NkbPd55aQ+LCvT75Q
+2/CwcblJoNmiJfZS5eV7rd/bhNutO6I6i650d5Gvoq+JXSfcCOpJ7z3X13Pzxa2P
+t6f6Jwbe3nl5d+Te0P2BwZ4HnUOXHl54dHa46fHAk/Gny6O0z/DP5V/ovDR/tfu1
+11jgm7i3WeTG8UfvVt6LTjp/yJzqnf7xUWbWe+7Up+EvwvOHF+YXg77Nf09ZZltp
+WSOskzcit/3PilRI85A3tIAKQM3DB9G86BaMAxbG/oULpZClWKa8S1VBnUzjQ2tD
+Z0yvyaDCqMKkyWzIYsPqwkZkD+IIQaIgmJvI48RrzCfNT8//Gd8vUC4YIaQp9Eo4
+RgQrUiwqJdotZiX2RjxcAkjkSgpKtkjpST2S9kJiIkWWVrZETlyuXd5Y/omCt8KC
+4kElBqVKZXnl6yrWKm9Uw1TX1NLVWZE8IafRrUnQHNEiaX3ZlaRNoX1KR0inVddU
+95veWf3dBhQG1wxjjWSNZoxrTXxNRUwnzWoJgeaS5jMW9ZZBVtJW89btNsm2pnbM
+dmT7FodUR0fkDrHmNORc5RLjaubG7fbZvdejYE+A5669jHunvK4Ri71TSH4+lr6K
+fpx+m/6TAfeRLFIUnBxCCiWEKYXzR9BGrES+jxqKbo8piz0QtydeK4E14fO+wcQr
+Sa37LyW3HGhN6Tp4O3Xk0HTaxhGOoyrHHNIjj2dnnM+8nvU4e+LEl5zvuasn1/JW
+8pcKFk79LJItJpbkl/aVzZ/mqTCrjDpTXjVQ/fUs/znH2qLzY/WCFwIaLjZ+bVJt
+3t/ScxnTav5XbttoB1+nz5X6rs9X5a9FXG++8alXss/vZvWtsX76Ad07UXfP35sY
+FHsQM/TgkcJw1ROep2dGFZ49f1H8Kn2si2w+YfNh5OOnL3nfGlYlt/z/639kWw2r
+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
+ACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAA
+AAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAI
+EAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAA
+AAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQA
+AAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAAC
+BAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAA
+AAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEA
+AAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAA
+AQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAA
+gAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAA
+AACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBA
+AAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAA
+IEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAA
+AAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQ
+AAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAA
+CBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAA
+AAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIE
+AAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAA
+AgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAA
+AAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAAB
+AAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACA
+AAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAA
+AIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAA
+AAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAg
+QAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAA
+ACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAA
+AAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAI
+EAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAA
+AAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQA
+AAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAAC
+BAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAA
+AAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEA
+AAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAA
+AQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAA
+gAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAA
+AACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBA
+AAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAA
+IEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAA
+AAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQ
+AAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAA
+CBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAA
+AAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIE
+AAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAA
+AgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAA
+AAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAAB
+AAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACA
+AAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAA
+AIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAA
+AAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAg
+QAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAA
+ACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAA
+AAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAI
+EAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAA
+AAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQA
+AAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAAC
+BAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAA
+AAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEA
+AAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAA
+AQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAA
+gAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAA
+AACAAAEAAAAAAtYxxpg9Arie45y9AAC69m32AuCKPAAAAAAgQAAAAACAAAEAAAAA
+AgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAA
+AAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAAB
+AAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACA
+AAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAA
+AIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAA
+AAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAg
+QAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAA
+ACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAA
+AAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAI
+EAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAA
+AAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQA
+AAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAAC
+BAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAA
+AAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEA
+AAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAA
+AQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAA
+gAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAA
+AACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBA
+AAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAA
+IEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAA
+AAAgQAAAAACAAAEAAAAAAr47WRP3DG/I4AAAAABJRU5ErkJggg==
+		</image>
+	</surface>
+	</OBJECT-3D>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webGL/xml/blue_notes.xml	Thu May 03 00:52:06 2012 +0900
@@ -0,0 +1,86 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="blue_notes" size="6" prim="Triangle" parent="NULL">
+		<coordinate>
+			-5.859375 -1.500000 0.000000
+			5.859375 -1.500000 0.000000
+			5.859375 1.500000 0.000000
+			5.859375 1.500000 0.000000
+			-5.859375 1.500000 0.000000
+			-5.859375 -1.500000 0.000000
+		</coordinate>
+		<normal>
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+		</texture>
+		<image name="blue_notes.png">
+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
+		</image>
+	</surface>
+	</OBJECT-3D>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webGL/xml/line.xml	Thu May 03 00:52:06 2012 +0900
@@ -0,0 +1,167 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="line" size="6" prim="Triangle" parent="NULL">
+		<coordinate>
+			-50.000000 -1.500000 0.000000
+			50.000000 -1.500000 0.000000
+			50.000000 1.500000 0.000000
+			50.000000 1.500000 0.000000
+			-50.000000 1.500000 0.000000
+			-50.000000 -1.500000 0.000000
+		</coordinate>
+		<normal>
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+		</texture>
+		<image name="line.png">
+iVBORw0KGgoAAAANSUhEUgAAA3cAAAAUCAIAAACh2VMoAAAX/WlDQ1BJQ0MgUHJv
+ZmlsZQAAWIWVWQk4VV/X3+eeO5jnebzmeZ7JPF7zlDm5rnmeiSRpkCFC5gglIpS/
+IRpQ0SClolFdSYiKpEzxHVL/9/u/7/t8z7efZ+/zs87aa6+91jpr7+UCwPUXMSIi
+BMUAQGhYTJS9qQHexdUNj3sNUAAGjAACikRSdIS+ra0l+K/t+yjCh7QnMluy/jvf
+f2yMPr7RJAAgWwR7+0STQhH8FwBwJykiKgYAzJY84fiYiC2ci2CWKERBBJ/dwv6/
+cOcW9v6FB7d5HO0NEUwGgIKGSIzyB4B2DqHj40j+iBw6GgCwTGE+gWEIKx7BOqQA
+og8AXF4Ij3RoaPgWzkKwuPe/yPH/XzK9/8gkEv3/4F972W4URoHRESHEff9Pc/zf
+LTQk9vcafEiniQ52sECebIjdEkhEYwcEcyD4RIAvwXKHXhsRY2C/Q78aGENw3LIR
+gp8GxJrt3sHTscG79RHMg+D14HCLLX7ETiiOMG9rGwQzIViYFG3o9ksmSjUxwNF5
+h8fSx9fIGMFIFKFcosLtf/MHRMc5/KYnJgYYWv/mDyKab/mbDsEZxKjtvSA6oIp9
+Q0y31hVEcGNEjK3jzlpDYSHWO3tBvfeLMrHfwau+0dv73V4rJsDR7Jd8mCEGCYBf
+MmEev0ATwi8dYPmAKLPfdL2IkO2YRubCjlGx9lt2EEawn2/Y7h2ZcIYP0cjil03g
+cmACiCAK+AJvEAZ+AjywBIbAaGfEI/QwZCSBcBCC9Cg8/e83mA+YYcw7zAiGjHnx
+h9vwNx8IBD7I8zed9C90B5AIPiFSfUH079XQXGgdtBbaEhn1kK6IVkdr/H43NNcx
+90erX7r6I3NldigGO9rH/av2ewMPRf1jjvefGf+ukwl4vy11h0O+QX5Gfv33/L93
+jDXGGmHNsCZYCTgdboUH4F74LnwV7gB4+AbcCQ/C17bwP1Yh7lglanu/FsiKviB2
++6+w/6hR7B+OHSqdJJ0KsN/mD0beBf5ZwWlb68B/kxKLdG9EUhDyzuLPHn9bWhSx
+rgraAK2N2BmxMZoNzQVk0MqIxfXRuogPVBCq4T9n7YwywG/blnHbewkGHxAcGuOb
+ELMV6IbhEfuiAv0DYvD6SLb0lcYTwkiy0nhFeQVFsJV7f33ai/bbORVie/g3LRj5
+ZtTeIsSyv2m+NQB07AKAMuVvmsgEEu7vAbjDRIqNivtFQ28NGEAF6JHo50QyhxAQ
+R/RUBKpAC+gBY2AObIAjcAWeiHUDQCiicTzYD1LBUZAJcsEpUAoqQQ2oAxfBZdAB
+roJe0A/ug0dgBLwCZDAJZsE8+A7WIAjCQbQQM8QJ8UMikBSkCKlDOpAxZAnZQ66Q
+F+QPhUGx0H4oDcqE8qBSqAqqhy5BV6Be6C40DL2AxqEZ6Cu0ioJRNCgWFC9KFCWH
+UkfpoyxQjqg9KH9UJCoRdRh1AlWMqkY1otpRvaj7qBEUGTWLWoIBTA2zwQKwDKwO
+G8I2sBvsB0fBB+AMuBCuhpvgLiQWn8BkeA5eQWPRzGg8WgbxpBl6N5qEjkQfQGeh
+S9F16Hb0LfQT9Dh6Hr2BocXwYKQwmhgCxgXjj4nHHMUUYmoxbZjbyPc8ifmOxWLZ
+sGJYNSTaXbFB2CRsFvY0thnbgx3GTmCXcDgcJ04Kp42zwRFxMbijuBJcI+4G7jFu
+ErdMQU3BT6FIYULhRhFGcYiikOICxXWKxxRTFGuUDJQilJqUNpQ+lPsocyjPUnZR
+PqScpFyjYqQSo9KmcqQKokqlKqZqorpN9ZpqkZqaWpBag9qOOpD6IHUxdQv1Hepx
+6hUaJhpJGkMaD5pYmhM052l6aF7QLNLS0orS6tG60cbQnqCtp71J+4Z2mY6ZTpaO
+QOdDl0JXRtdO95juMz0lvQi9Pr0nfSJ9IX0r/UP6OQZKBlEGQwYiwwGGMoYrDM8Y
+lhiZGRUYbRhDGbMYLzDeZZxmwjGJMhkz+TAdZqphusk0wQwzCzEbMpOY05jPMt9m
+nmTBsoixEFiCWDJZLrIMscyzMrEqszqxJrCWsV5jJbPBbKJsBLYQthy2y2yjbKvs
+vOz67L7sx9mb2B+z/+Dg5tDj8OXI4GjmGOFY5cRzGnMGc57k7OAc40JzSXLZccVz
+VXDd5prjZuHW4iZxZ3Bf5n7Jg+KR5LHnSeKp4RnkWeLl4zXljeAt4b3JO8fHxqfH
+F8RXwHedb4afmV+HP5C/gP8G/0c8K14fH4Ivxt/CzwvwCJgJxApUCQwJrAmKCe4W
+PCTYLDgmRCWkLuQnVCDUJzQvzC9sJbxfuEH4pQiliLpIgEiRyIDID1ExUWfRY6Id
+otNiHGIEsUSxBrHX4rTiuuKR4tXiTyWwEuoSwRKnJR5JoiRVJAMkyyQfSqGkVKUC
+pU5LDUtjpDWkw6SrpZ/J0Mjoy8TJNMiMy7LJWsoeku2Q/SwnLOcmd1JuQG5DXkU+
+RP6s/CsFJgVzhUMKXQpfFSUVSYplik+VaJVMlFKUOpUWlKWUfZUrlJ+rMKtYqRxT
+6VP5qaqmGqXapDqjJqzmpVau9kydRd1WPUv9jgZGw0AjReOqxoqmqmaM5mXNL1oy
+WsFaF7Smd4nt8t11dteEtqA2UbtKm6yD1/HSOaND1hXQJepW677TE9Lz0avVm9KX
+0A/Sb9T/bCBvEGXQZvDDUNMw2bDHCDYyNcowGjJmMt5tXGr8xkTQxN+kwWTeVMU0
+ybTHDGNmYXbS7BmBl0Ai1BPmzdXMk81vWdBYOFiUWryzlLSMsuyyQlmZW+VbvbYW
+sQ6z7rABNgSbfJsxWzHbSNtuO6ydrV2Z3Qd7Bfv99gMOzA57HS44fHc0cMxxfLVb
+fHfs7j4neicPp3qnH85GznnOZBc5l2SX+65croGunW44Nye3Wrcld2P3U+6THioe
+Rz1G94jtSdhz15PLM8Tz2l76vcS9rV4YL2evC17rRBtiNXHJm+Bd7j1PMiQVkWZ9
+9HwKfGZ8tX3zfKf8tP3y/Kb9tf3z/WcCdAMKA+YCDQNLAxeCzIIqg34E2wSfD94M
+cQ5pDqUI9Qq9EsYUFhx2K5wvPCF8OEIq4mgEOVIz8lTkfJRFVG00FL0nujOGBbnk
+DsaKxx6JHY/TiSuLW453im9NYEwISxjcJ7nv+L6pRJPEc0noJFJS336B/an7x5P1
+k6sOQAe8D/SlCKUcTpk8aHqwLpUqNTj1wSH5Q3mHvqU5p3Ud5j188PDEEdMjDUfp
+jkYdfXZM61hlOjo9MH3ouNLxkuMbGT4Z9zLlMwsz17NIWfeyFbKLszdP+J0YylHN
+qcjF5obljp7UPVmXx5iXmDeRb5XfXoAvyCj4dmrvqbuFyoWVRVRFsUXkYsvizhLh
+ktyS9dKA0pEyg7Lmcp7y4+U/TvucflyhV9FUyVuZWbl6JvDM8yrTqvZq0erCGmxN
+XM2Hs05nB86pn6uv5arNrP15Puw8uc6+7la9Wn39BZ4LOQ2ohtiGmUaPxkcXjS52
+Nsk0VTWzNWe2gJbYlo+XvC6NXra43Neq3tr0l8hf5W3MbRntUPu+9vmOgA5yp2vn
+8BXzK31dWl1t3bLd568KXC27xnot5zrV9cPXN28k3ljqieiZ6/Xvnejb2/fqpsvN
+p7fsbg3dtrh9p9+k/+aA/sCNO9p3rt7VvHvlnvq9jvuq99sHVQbbHqg8aBtSHWp/
+qPaw85HGo67hXcPXH+s+7n1i9KT/KeHp/RHrkeHR3aPPn3k8Iz/3eT79IuTFwsu4
+l2uvDr7GvM4YYxgrfMPzpvqtxNtmsir52rjR+OA7h3evJkgTs++j369PHv5A+6Fw
+in+qflpx+uqMycyjj+4fJ2cjZtfmjn5i/FT+WfzzX1/0vgzOu8xPLkQtbH7NWuRc
+PP9N+Vvfku3Sm++h39d+ZCxzLtetqK8MrDqvTq3Fr+PWi39K/OzasNh4vRm6uRlB
+jCJuXwVgpKP8/AD4eh6pW1wBYH4EABXdr9pop8HI5QOFPHlBGoSHLqIIqI/wSbQx
+BoW5hI3HWVAIUsKUc1TT1BM0c7Q/6XkY1Bg9mU4w97Ass6mwJ3P0cFFwE3gyeO/y
+Y/G7BIIFTwl1CD8T+SwGxGkkmCTZpTikyNIVMu6y7LJP5fLkbRUYFB4pnlSyV2ZR
+HlUpUfVQw6tNqFdr7NXk0XyhVbJrj7aQ9pzOVd2TesH65gbyhjxGNMbAeMVk2XTN
+7Cdh0wKyhK3Q1hgbjC3aDrZHOQCHTcdNJxpnCRdL1xC3E+4XPe7v+eC56cVGlPTW
+Jln5ePgG+MX6pwUUB14KGgpeCOUKMwmPj2iIJEezxVjGpsa1xo8mzCXCSdz71ZKd
+DiSmVB18kLqRpnQ45Ej90el0zuMqGXaZIVnHs8+f6M+ZOUmTp5S/p+D4qc7C6WKt
+kvYyqfLSClQl6Ux3NW2N69mqc5PnxeuC6i9euN0w0jh1cb2ZvUXt0t7LJ1oH2nDt
+Nh3lnfNdct2WV32v7b9+4sbpnrreS30dN7tvXb/d23974N6dJ3ef3Lt/v3Ow6EHQ
+kPLQ0sPGR57DdMPdj1OfuD/VGxEaxYxOPrv5vPJF0kunVwqvaV5Pjz140/X2HDln
+PPad84Tae5b3nyf7P5yeipm2nBH/SPFxarZ/rubTwc/uX5TnaeffL3R9zVkM++a2
+ZPXd5IfJstWK+2r42rH1mp+9G+TNzR3/80CnUOKoLtgB/o4uw9hhWbBDuHyKQEoL
+Kjlqbho6WkY6Rno8gxKjBZM/cwZLO+skOz2HPmcYVyl3L88UHxW/MF5DwELQSchd
+2E3ESdRSTEdcRvyDRKGkgeQnqRJpY+kFmdOyBNlFuQp5c/klhSpFa8UVpXPK9srL
+KpWqZqpf1IrU9dSnNXI1NTTJWum7FHe90E7TkdEZ163Wi9Q3NGAzmDW8ZVRhnGji
+bKpmxmm2Rnhr3mdx3jLbKs7ay8bSVsNOzJ7dAeew4ji3m+w04nzfpRc5B5rcqzwK
+92R5Htmb4pVE3Oe9j5Tkc9D3iF+2/6mA04HnguqCL4a0Ilm7J/xOxOPI11HT0Uux
+6DiWeJEE5X16iZZJrvv9kqMPpKbkHjyT2nKoL+3p4ekjP48JpXseL8kYzqLI1j4R
+mVOTO5KHzVctCDhVWni/aKGEsVSxzLE84XRFRX/lQhV/tW3NkbPd55aQ+LCvT75Q
+2/CwcblJoNmiJfZS5eV7rd/bhNutO6I6i650d5Gvoq+JXSfcCOpJ7z3X13Pzxa2P
+t6f6Jwbe3nl5d+Te0P2BwZ4HnUOXHl54dHa46fHAk/Gny6O0z/DP5V/ovDR/tfu1
+11jgm7i3WeTG8UfvVt6LTjp/yJzqnf7xUWbWe+7Up+EvwvOHF+YXg77Nf09ZZltp
+WSOskzcit/3PilRI85A3tIAKQM3DB9G86BaMAxbG/oULpZClWKa8S1VBnUzjQ2tD
+Z0yvyaDCqMKkyWzIYsPqwkZkD+IIQaIgmJvI48RrzCfNT8//Gd8vUC4YIaQp9Eo4
+RgQrUiwqJdotZiX2RjxcAkjkSgpKtkjpST2S9kJiIkWWVrZETlyuXd5Y/omCt8KC
+4kElBqVKZXnl6yrWKm9Uw1TX1NLVWZE8IafRrUnQHNEiaX3ZlaRNoX1KR0inVddU
+95veWf3dBhQG1wxjjWSNZoxrTXxNRUwnzWoJgeaS5jMW9ZZBVtJW89btNsm2pnbM
+dmT7FodUR0fkDrHmNORc5RLjaubG7fbZvdejYE+A5669jHunvK4Ri71TSH4+lr6K
+fpx+m/6TAfeRLFIUnBxCCiWEKYXzR9BGrES+jxqKbo8piz0QtydeK4E14fO+wcQr
+Sa37LyW3HGhN6Tp4O3Xk0HTaxhGOoyrHHNIjj2dnnM+8nvU4e+LEl5zvuasn1/JW
+8pcKFk79LJItJpbkl/aVzZ/mqTCrjDpTXjVQ/fUs/znH2qLzY/WCFwIaLjZ+bVJt
+3t/ScxnTav5XbttoB1+nz5X6rs9X5a9FXG++8alXss/vZvWtsX76Ad07UXfP35sY
+FHsQM/TgkcJw1ROep2dGFZ49f1H8Kn2si2w+YfNh5OOnL3nfGlYlt/z/639kWw2r
+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
+6F1zSQEm3os2ggAAAABJRU5ErkJggg==
+		</image>
+	</surface>
+	</OBJECT-3D>
\ No newline at end of file
--- a/webGL/xml/mainmode.xml	Thu Apr 26 00:34:45 2012 +0900
+++ b/webGL/xml/mainmode.xml	Thu May 03 00:52:06 2012 +0900
@@ -2,12 +2,12 @@
 <OBJECT-3D>
 	<surface name="mainmode" size="6" prim="Triangle" parent="NULL">
 		<coordinate>
-			-44.999996 -10.000000 0.000000
-			44.999994 -10.000000 0.000000
-			45.000006 10.000000 0.000000
-			45.000006 10.000000 0.000000
-			-45.000004 10.000000 0.000000
-			-44.999996 -10.000000 0.000000
+			-40.000000 -8.000000 0.000000
+			40.0 -8.000000 0.000000
+			40.00000 8.000000 0.000000
+			40.00000 8.000000 0.000000
+			-40.00000 8.000000 0.000000
+			-40.0 -8.000000 0.000000
 		</coordinate>
 		<normal>
 			0.000000 0.000000 1.000000
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webGL/xml/pink_notes.xml	Thu May 03 00:52:06 2012 +0900
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="pink_notes" size="6" prim="Triangle" parent="NULL">
+		<coordinate>
+			-5.859375 -1.500000 0.000000
+			5.859375 -1.500000 0.000000
+			5.859375 1.500000 0.000000
+			5.859375 1.500000 0.000000
+			-5.859375 1.500000 0.000000
+			-5.859375 -1.500000 0.000000
+		</coordinate>
+		<normal>
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+		</texture>
+		<image name="pink_notes.png">
+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
+YII=
+		</image>
+	</surface>
+	</OBJECT-3D>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webGL/xml/test.xml	Thu May 03 00:52:06 2012 +0900
@@ -0,0 +1,300 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="test" size="6" prim="Triangle" parent="NULL">
+		<coordinate>
+			-46.875000 -7.812500 0.000000
+			46.875 -7.812500 0.000000
+			46.87500 7.812500 0.000000
+			46.87500 7.812500 0.000000
+			-46.87500 7.812500 0.000000
+			-46.875 -7.812500 0.000000
+		</coordinate>
+		<normal>
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+		</texture>
+		<image name="test.png">
+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
+		</image>
+	</surface>
+	</OBJECT-3D>
\ No newline at end of file
--- a/webGL/xml/title.xml	Thu Apr 26 00:34:45 2012 +0900
+++ b/webGL/xml/title.xml	Thu May 03 00:52:06 2012 +0900
@@ -2,12 +2,12 @@
 <OBJECT-3D>
 	<surface name="title" size="6" prim="Triangle" parent="NULL">
 		<coordinate>
-			-44.999996 -10.000000 0.000000
-			44.999994 -10.000000 0.000000
-			45.000006 10.000000 0.000000
-			45.000006 10.000000 0.000000
-			-45.000004 10.000000 0.000000
-			-44.999996 -10.000000 0.000000
+			-45.000000 -10.000000 0.000000
+			45.000000 -10.000000 0.000000
+			45.000000 10.000000 0.000000
+			45.000000 10.000000 0.000000
+			-45.000000 10.000000 0.000000
+			-45.000000 -10.000000 0.000000
 		</coordinate>
 		<normal>
 			0.000000 0.000000 1.000000