private void ClearBackground(uint cx, uint cy) { GSEffect solid = Obs.GetSolidEffect(); solid.SetParameterValue("color", new Vector4(0.0f, 0.0f, 0.0f, 1.0f)); GSEffectTechnique tech = solid.GetTechnique("Solid"); GS.TechniqueBegin(tech); GS.TechniqueBeginPass(tech, 0); GS.MatrixPush(); GS.MatrixIdentity(); GS.MatrixScale3f((float)cx, (float)cy, 1.0f); GS.LoadVertexBuffer(boxPrimitive); //draw solid black color over the scene GS.Draw(GSDrawMode.TrisStrip, 0, 0); GS.MatrixPop(); GS.TechniqueEndPass(tech); GS.TechniqueEnd(tech); GS.LoadVertexBuffer(null); }
public static unsafe GSEffect GetBaseEffect(ObsBaseEffect effect) { IntPtr ptr = libobs.obs_get_base_effect((libobs.obs_base_effect)effect); if (ptr == IntPtr.Zero) { return(null); } GSEffect baseEffect = new GSEffect(ptr); return(baseEffect); }
private void RenderSceneEditing(IntPtr data) { if (scene == null) { return; } // draw selection outlines GSEffect solid = Obs.GetSolidEffect(); solid.SetParameterValue("color", new Vector4(1.0f, 1.0f, 1.0f, 0.6f)); GSEffectTechnique tech = solid.GetTechnique("Solid"); GS.TechniqueBegin(tech); GS.TechniqueBeginPass(tech, 0); scene.EnumItems(DrawSelectedItem, data); GS.TechniqueEndPass(tech); GS.TechniqueEnd(tech); // hover outlines solid.SetParameterValue("color", new Vector4(1.0f, 1.0f, 1.0f, 0.40f)); tech = solid.GetTechnique("Solid"); GS.TechniqueBegin(tech); GS.TechniqueBeginPass(tech, 0); if (hoveredItem != null) { DrawHoveredItem(scene, hoveredItem, data); } GS.TechniqueEndPass(tech); GS.TechniqueEnd(tech); GS.LoadVertexBuffer(null); }