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(); }
protected override void OnDraw(RenderTexture2D dst, RenderTexture2D src) { // 変数の設定 Material.SetVector2DF("resolution", Engine.WindowSize.To2DF()); Material.SetFloat("time", Stopwatch.ElapsedMilliseconds * 0.001f); // マテリアルを用いて描画 DrawOnTexture2DWithMaterial(dst, Material); }