Subversion Repositories AndroidProjects

Rev

Rev 833 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
780 chris 1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Linq;
7
using System.Text;
8
using System.Threading.Tasks;
9
using System.Windows.Forms;
10
 
781 chris 11
using Tao.OpenGl;
780 chris 12
 
789 chris 13
using BauzoidNET.app;
14
 
793 chris 15
using System.IO;
16
 
780 chris 17
namespace BauzoidEdit
18
{
19
    public partial class MainForm : Form
20
    {
789 chris 21
        private BauzoidApp mApp = null;
780 chris 22
 
1304 chris 23
        private BauzoidNET.graphics.sprite.SimpleSprite mSprite = null;
826 chris 24
        private BauzoidNET.graphics.texture.Framebuffer mOffscreen = null;
797 chris 25
 
826 chris 26
        private BauzoidNET.graphics.model.SimpleGeometry mQuad = null;
27
        private BauzoidNET.graphics.shader.ShaderProgram mShader = null;
28
        private BauzoidNET.graphics.shader.ShaderUniform mTextureHandle = null;
29
 
780 chris 30
        public MainForm()
31
        {
32
            InitializeComponent();
33
        }
34
 
789 chris 35
        private void MainForm_Load(object sender, EventArgs e)
36
        {
37
            mApp = new BauzoidApp();
825 chris 38
            mApp.init(mGlView.Width, mGlView.Height);
797 chris 39
 
826 chris 40
            mQuad = BauzoidNET.graphics.model.GeometryUtil.createQuad(mApp.getGraphics(), 0.0f, 0, 100.0f, 100.0f);
41
 
42
                //mShader = ShaderUtil.createShaderFromFile(mApp.getGraphics(), Gdx.files.internal("data/shaders/offscreen.vert"), 
43
                                //Gdx.files.internal("data/shaders/offscreen.frag"));*/
44
            mShader = BauzoidNET.graphics.shader.ShaderUtil.createShaderFromFile(mApp.getGraphics(), "data/shaders/offscreen.vert", "data/shaders/offscreen.frag");
45
 
46
                if (mShader != null)
47
                {
48
                        mTextureHandle = mShader.getUniform("uDiffuse");
49
                    }
50
 
1304 chris 51
            mSprite = new BauzoidNET.graphics.sprite.SimpleSprite(mApp.getGraphics(), "data/textures/test.png");
52
            mSprite.init();
826 chris 53
 
1304 chris 54
            mSprite.getSpriteTransform().x = 10;
55
            mSprite.getSpriteTransform().y = 10;
56
            mSprite.getSpriteTransform().w = 300;
57
            mSprite.getSpriteTransform().h = 300;
58
            mSprite.getSpriteTransform().pivotX = 0;
59
            mSprite.getSpriteTransform().pivotY = 0;
60
 
826 chris 61
            mOffscreen = new BauzoidNET.graphics.texture.Framebuffer(mApp.getGraphics(), 128, 128, false);
789 chris 62
        }
63
 
64
        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
65
        {
797 chris 66
            if (mSprite != null)
67
            {
68
                mSprite.dispose();
69
                mSprite = null;
70
            }
71
 
826 chris 72
            if (mOffscreen != null)
73
            {
74
                mOffscreen.dispose();
75
                mOffscreen = null;
76
            }
77
 
78
            if (mQuad != null)
79
            {
80
                mQuad.dispose();
81
                mQuad = null;
82
            }
83
 
800 chris 84
            if (mApp != null)
85
                mApp.exit();
789 chris 86
        }
87
 
781 chris 88
        private void mGlView_Paint(object sender, PaintEventArgs e)
780 chris 89
        {
826 chris 90
            mOffscreen.activate();
91
 
92
            mApp.getGraphics().clear(1, 0.5f, 0.3f, 0);
93
            mApp.getRenderStates().projection.setOrtho(
94
                0.0f,
95
                480,
830 chris 96
                480,
826 chris 97
                0.0f,
98
                0.0f,
99
                1.0f
100
            );
101
 
797 chris 102
            mSprite.render();
826 chris 103
            mOffscreen.deactivate();
104
 
830 chris 105
            mApp.getGraphics().clear(0, 0.5f, 0.3f, 0);
106
 
107
            //Gl.glViewport(0, 0, mGlView.Width, mGlView.Height);
108
            mApp.getRenderStates().projection.setOrtho(
109
                    0.0f,
110
                    mApp.getGraphics().getWidth(),
111
                    mApp.getGraphics().getHeight(),
112
                    0.0f,
113
                    0.0f,
114
                    1.0f
115
                );
116
 
826 chris 117
            BauzoidNET.graphics.renderstates.RenderStates rs = mApp.getGraphics().renderStates;
118
 
827 chris 119
            rs.view.identity();
120
            rs.model.identity();
121
 
826 chris 122
            mShader.activate();
123
            {
124
                mTextureHandle.set(0);
125
                rs.getTextureStage(0).bindTexture(mOffscreen.getColorTexture());
126
 
127
                rs.blending.setEnabled(false);
128
                rs.culling.setEnabled(false);
129
                rs.depthTest.setEnabled(false);
130
                rs.activate();
131
                {
132
                    mQuad.render();
133
                }
134
                rs.deactivate();
135
                rs.popModelMatrix();
136
                rs.popViewMatrix();
137
            }
138
            mShader.deactivate();
780 chris 139
        }
816 chris 140
 
141
        private void colorWidget1_ColorChange(object sender, EventArgs e)
142
        {
819 chris 143
            foreColorPanel.BackColor = mainColorWidget.CurrentColor;
825 chris 144
            swatchesBox.CurrentColor = mainColorWidget.CurrentColor;
816 chris 145
        }
824 chris 146
 
147
        private void colorPalette1_ColorPicked(object sender, EventArgs e)
148
        {
825 chris 149
            mainColorWidget.CurrentColor = swatchesBox.CurrentColor;
150
            foreColorPanel.BackColor = swatchesBox.CurrentColor;
824 chris 151
        }
825 chris 152
 
153
        private void mGlView_Resize(object sender, EventArgs e)
154
        {
833 chris 155
            if (mApp != null)
156
                mApp.getGraphics().updateSurfaceDimensions(mGlView.Width, mGlView.Height);
825 chris 157
        }
780 chris 158
    }
159
}