void SetShaderParameters(ShaderParameters parameters, Texture2D pixels, Texture2D palette) { if (parameters == null) { throw new ArgumentNullException("parameters"); } if (pixels == null) { throw new ArgumentNullException("pixels"); } if (palette == null) { throw new ArgumentNullException("palette"); } GetShaderParameter("xPixels").SetValue(pixels); GetShaderParameter("xPalette").SetValue(palette); GetShaderParameter("xFontColorIndex").SetValue(parameters.FontColorIndex); GetShaderParameter("xFontTotalColors").SetValue(parameters.FontTotalColors); if (parameters.PaletteFxEnable == true) { GetShaderParameter("xPalFx_Use").SetValue(true); GetShaderParameter("xPalFx_Add").SetValue(new Vector4(parameters.PaletteFxAdd, 0)); GetShaderParameter("xPalFx_Mul").SetValue(new Vector4(parameters.PaletteFxMultiply, 1)); GetShaderParameter("xPalFx_Invert").SetValue(parameters.PaletteFxInvert); GetShaderParameter("xPalFx_Color").SetValue(parameters.PaletteFxColor); Vector4 sincolor = parameters.PaletteFxSinAdd * (Single)Math.Sin(parameters.PaletteFxTime * MathHelper.TwoPi / parameters.PaletteFxSinAdd.W); sincolor.W = 0; GetShaderParameter("xPalFx_SinMath").SetValue(sincolor); } else { GetShaderParameter("xPalFx_Use").SetValue(false); } if (parameters.AfterImageEnable == true) { GetShaderParameter("xAI_Use").SetValue(true); GetShaderParameter("xAI_Invert").SetValue(parameters.AfterImageInvert); GetShaderParameter("xAI_color").SetValue(parameters.AfterImageColor); GetShaderParameter("xAI_preadd").SetValue(new Vector4(parameters.AfterImagePreAdd, 0)); GetShaderParameter("xAI_contrast").SetValue(new Vector4(parameters.AfterImageConstrast, 1)); GetShaderParameter("xAI_postadd").SetValue(new Vector4(parameters.AfterImagePostAdd, 0)); GetShaderParameter("xAI_paladd").SetValue(new Vector4(parameters.AfterImagePaletteAdd, 0)); GetShaderParameter("xAI_palmul").SetValue(new Vector4(parameters.AfterImagePaletteMultiply, 1)); GetShaderParameter("xAI_number").SetValue(parameters.AfterImageNumber); } else { GetShaderParameter("xAI_Use").SetValue(false); } }
public DrawState(VideoSystem videosystem) { if (videosystem == null) throw new ArgumentNullException("videosystem"); m_videosystem = videosystem; m_mode = DrawMode.Normal; m_pixels = null; m_palette = null; m_scissorrect = Rectangle.Empty; m_blending = new Blending(); m_drawdata = new List<DrawData>(); m_scale = Vector2.One; m_axis = Vector2.Zero; m_flip = SpriteEffects.None; m_rotation = 0; m_offset = Vector2.Zero; m_stretch = Vector2.One; m_parameters = new ShaderParameters(); }
public DrawState(VideoSystem videosystem) { if (videosystem == null) { throw new ArgumentNullException("videosystem"); } m_videosystem = videosystem; m_mode = DrawMode.Normal; m_pixels = null; m_palette = null; m_scissorrect = Rectangle.Empty; m_blending = new Blending(); m_drawdata = new List <DrawData>(); m_scale = Vector2.One; m_axis = Vector2.Zero; m_flip = SpriteEffects.None; m_rotation = 0; m_offset = Vector2.Zero; m_stretch = Vector2.One; m_parameters = new ShaderParameters(); }
public DrawState(VideoSystem videosystem) { if (videosystem == null) { throw new ArgumentNullException(nameof(videosystem)); } m_videosystem = videosystem; Mode = DrawMode.Normal; Pixels = null; Palette = null; ScissorRectangle = Rectangle.Empty; Blending = new Blending(); m_drawdata = new List <DrawData>(); Scale = Vector2.One; Axis = Vector2.Zero; Flip = SpriteEffects.None; Rotation = 0; Offset = Vector2.Zero; Stretch = Vector2.One; m_parameters = new ShaderParameters(); }
void SetShaderParameters(ShaderParameters parameters, Texture2D pixels, Texture2D palette) { if (parameters == null) throw new ArgumentNullException("parameters"); if (pixels == null) throw new ArgumentNullException("pixels"); if (palette == null) throw new ArgumentNullException("palette"); GetShaderParameter("xPixels").SetValue(pixels); GetShaderParameter("xPalette").SetValue(palette); GetShaderParameter("xFontColorIndex").SetValue(parameters.FontColorIndex); GetShaderParameter("xFontTotalColors").SetValue(parameters.FontTotalColors); if (parameters.PaletteFxEnable == true) { GetShaderParameter("xPalFx_Use").SetValue(true); GetShaderParameter("xPalFx_Add").SetValue(new Vector4(parameters.PaletteFxAdd, 0)); GetShaderParameter("xPalFx_Mul").SetValue(new Vector4(parameters.PaletteFxMultiply, 1)); GetShaderParameter("xPalFx_Invert").SetValue(parameters.PaletteFxInvert); GetShaderParameter("xPalFx_Color").SetValue(parameters.PaletteFxColor); Vector4 sincolor = parameters.PaletteFxSinAdd * (Single)Math.Sin(parameters.PaletteFxTime * MathHelper.TwoPi / parameters.PaletteFxSinAdd.W); sincolor.W = 0; GetShaderParameter("xPalFx_SinMath").SetValue(sincolor); } else { GetShaderParameter("xPalFx_Use").SetValue(false); } if (parameters.AfterImageEnable == true) { GetShaderParameter("xAI_Use").SetValue(true); GetShaderParameter("xAI_Invert").SetValue(parameters.AfterImageInvert); GetShaderParameter("xAI_color").SetValue(parameters.AfterImageColor); GetShaderParameter("xAI_preadd").SetValue(new Vector4(parameters.AfterImagePreAdd, 0)); GetShaderParameter("xAI_contrast").SetValue(new Vector4(parameters.AfterImageConstrast, 1)); GetShaderParameter("xAI_postadd").SetValue(new Vector4(parameters.AfterImagePostAdd, 0)); GetShaderParameter("xAI_paladd").SetValue(new Vector4(parameters.AfterImagePaletteAdd, 0)); GetShaderParameter("xAI_palmul").SetValue(new Vector4(parameters.AfterImagePaletteMultiply, 1)); GetShaderParameter("xAI_number").SetValue(parameters.AfterImageNumber); } else { GetShaderParameter("xAI_Use").SetValue(false); } }