105 lines
3.3 KiB
C#
105 lines
3.3 KiB
C#
using System;
|
|
|
|
namespace BizHawk.Bizware.BizwareGL
|
|
{
|
|
public interface IGuiRenderer : IDisposable
|
|
{
|
|
/// <summary>
|
|
/// Begins rendering
|
|
/// </summary>
|
|
void Begin();
|
|
|
|
void Begin(System.Drawing.Size size);
|
|
|
|
/// <summary>
|
|
/// begin rendering, initializing viewport and projections to the given dimensions
|
|
/// </summary>
|
|
/// <param name="yflipped">Whether the matrices should be Y-flipped, for use with render targets</param>
|
|
void Begin(int width, int height, bool yflipped = false);
|
|
|
|
/// <summary>
|
|
/// draws the specified Art resource
|
|
/// </summary>
|
|
void Draw(Art art);
|
|
|
|
/// <summary>
|
|
/// draws the specified Art resource with the specified offset. This could be tricky if youve applied other rotate or scale transforms first.
|
|
/// </summary>
|
|
void Draw(Art art, OpenTK.Vector2 pos);
|
|
|
|
/// <summary>
|
|
/// draws the specified Art resource with the specified offset. This could be tricky if youve applied other rotate or scale transforms first.
|
|
/// </summary>
|
|
void Draw(Art art, float x, float y);
|
|
|
|
/// <summary>
|
|
/// draws the specified Art resource with the specified offset, with the specified size. This could be tricky if youve applied other rotate or scale transforms first.
|
|
/// </summary>
|
|
void Draw(Art art, float x, float y, float width, float height);
|
|
void Draw(Texture2d art, float x, float y, float width, float height);
|
|
|
|
|
|
/// <summary>
|
|
/// draws the specified texture2d resource.
|
|
/// </summary>
|
|
void Draw(Texture2d tex);
|
|
|
|
/// <summary>
|
|
/// draws the specified texture2d resource.
|
|
/// </summary>
|
|
void Draw(Texture2d tex, float x, float y);
|
|
|
|
|
|
/// <summary>
|
|
/// draws the specified Art resource with the given flip flags
|
|
/// </summary>
|
|
void DrawFlipped(Art art, bool xflip, bool yflip);
|
|
|
|
/// <summary>
|
|
/// Draws a subrectangle from the provided texture. For advanced users only
|
|
/// </summary>
|
|
void DrawSubrect(Texture2d tex, float x, float y, float w, float h, float u0, float v0, float u1, float v1);
|
|
|
|
/// <summary>
|
|
/// Ends rendering
|
|
/// </summary>
|
|
void End();
|
|
|
|
/// <summary>
|
|
/// Use this, if you must do something sneaky to openGL without this GuiRenderer knowing.
|
|
/// It might be faster than End and Beginning again, and certainly prettier
|
|
/// </summary>
|
|
void Flush();
|
|
|
|
bool IsActive { get; }
|
|
MatrixStack Modelview { get; set; }
|
|
IGL Owner { get; }
|
|
MatrixStack Projection { get; set; }
|
|
void RectFill(float x, float y, float w, float h);
|
|
void SetBlendState(IBlendState rsBlend);
|
|
|
|
/// <summary>
|
|
/// Sets the specified corner color (for the gradient effect)
|
|
/// </summary>
|
|
void SetCornerColor(int which, OpenTK.Graphics.Color4 color);
|
|
|
|
/// <summary>
|
|
/// Sets all four corner colors at once
|
|
/// </summary>
|
|
void SetCornerColors(OpenTK.Graphics.Color4[] colors);
|
|
|
|
/// <summary>
|
|
/// Restores the pipeline to the default
|
|
/// </summary>
|
|
void SetDefaultPipeline();
|
|
void SetModulateColor(System.Drawing.Color color);
|
|
void SetModulateColorWhite();
|
|
|
|
/// <summary>
|
|
/// Sets the pipeline for this GuiRenderer to use. We won't keep possession of it.
|
|
/// This pipeline must work in certain ways, which can be discerned by inspecting the built-in one
|
|
/// </summary>
|
|
void SetPipeline(Pipeline pipeline);
|
|
}
|
|
}
|