예제 #1
0
        public Background(Vector3DF color, Vector3DF light)
        {
            byte[] shader_code =
                Engine.Graphics.GraphicsDeviceType == GraphicsDeviceType.OpenGL
                ? Engine.File.CreateStaticFile("Shaders/BackEffect.glsl").Buffer
                : Engine.Graphics.GraphicsDeviceType == GraphicsDeviceType.DirectX11
                ? Engine.File.CreateStaticFile("Shaders/BackEffect.hlsl").Buffer
                : new byte[0];

            // マテリアルを作成する
            material = Engine.Graphics.CreateMaterial2D(
                Engine.Graphics.CreateShader2D(
                    new UTF8Encoding().GetString(shader_code)
                    )
                );

            // ストップウォッチを作成する
            stopwatch = new Stopwatch();

            // マテリアル内の変数を設定する
            material.SetVector2DF("resolution", Engine.WindowSize.To2DF());
            material.SetVector3DF("color", color);
            material.SetVector3DF("light", light);

            // ストップウォッチを起動させる
            stopwatch.Start();
        }
예제 #2
0
        protected override void OnDraw(RenderTexture2D dst, RenderTexture2D src)
        {
            // 変数の設定
            Material.SetVector2DF("resolution", Engine.WindowSize.To2DF());
            Material.SetFloat("time", Stopwatch.ElapsedMilliseconds * 0.001f);

            // マテリアルを用いて描画
            DrawOnTexture2DWithMaterial(dst, Material);
        }