Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/Box2D.NET.Samples/Camera.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ public class Camera

public Camera()
{
m_width = 1280;
m_height = 800;
m_width = 1920;
m_height = 1080;
ResetView();
}

Expand Down
21 changes: 10 additions & 11 deletions src/Box2D.NET.Samples/Draw.cs
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,11 @@ public Draw()
m_regularFont = default;
}

public void Create(SampleAppContext context)
public void Create(SampleContext context)
{
_camera = context.camera;
_gl = context.gl;


m_background.Create(context);
m_points.Create(context);
m_lines.Create(context);
Expand Down Expand Up @@ -181,7 +180,7 @@ public void DrawString(int x, int y, string message)
//{
// return;
// }


ImGui.Begin("Overlay",
ImGuiWindowFlags.NoTitleBar | ImGuiWindowFlags.NoInputs | ImGuiWindowFlags.AlwaysAutoResize |
Expand All @@ -197,7 +196,7 @@ public void DrawString(B2Vec2 p, string message)
{
B2Vec2 ps = _camera.ConvertWorldToScreen(p);


ImGui.Begin("Overlay",
ImGuiWindowFlags.NoTitleBar | ImGuiWindowFlags.NoInputs | ImGuiWindowFlags.AlwaysAutoResize |
ImGuiWindowFlags.NoScrollbar);
Expand All @@ -221,18 +220,18 @@ public void DrawAABB(B2AABB aabb, B2HexColor c)

public void Flush()
{
m_solidCircles.Flush();
m_solidCapsules.Flush();
m_solidPolygons.Flush();
m_circles.Flush();
m_lines.Flush();
m_points.Flush();
m_solidCircles.Flush(_camera);
m_solidCapsules.Flush(_camera);
m_solidPolygons.Flush(_camera);
m_circles.Flush(_camera);
m_lines.Flush(_camera);
m_points.Flush(_camera);
_gl.CheckOpenGL();
}

public void DrawBackground()
{
m_background.Draw();
m_background.Draw(_camera);
}

public static void DrawPolygonFcn(ReadOnlySpan<B2Vec2> vertices, int vertexCount, B2HexColor color, object context)
Expand Down
12 changes: 5 additions & 7 deletions src/Box2D.NET.Samples/Graphics/GLBackground.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,21 @@ namespace Box2D.NET.Samples.Graphics;

public class GLBackground
{
private Camera _camera;
private Glfw _glfw;
private GL _gl;

private uint[] m_vaoId = new uint[1];
private uint[] m_vboId = new uint[1];
private uint m_programId;
private int m_timeUniform;
private int m_resolutionUniform;
private int m_baseColorUniform;

public void Create(SampleAppContext context)
public void Create(SampleContext context)
{
_glfw = context.glfw;
_gl = context.gl;
_camera = context.camera;


m_programId = _gl.CreateProgramFromFiles("data/background.vs", "data/background.fs");
m_timeUniform = _gl.GetUniformLocation(m_programId, "time");
m_resolutionUniform = _gl.GetUniformLocation(m_programId, "resolution");
Expand Down Expand Up @@ -71,7 +69,7 @@ public void Destroy()
}
}

public void Draw()
public void Draw(Camera camera)
{
_gl.UseProgram(m_programId);

Expand All @@ -82,7 +80,7 @@ public void Draw()
// time = fmodf(time, 100.0f);

_gl.Uniform1(m_timeUniform, time);
_gl.Uniform2(m_resolutionUniform, _camera.m_width, _camera.m_height);
_gl.Uniform2(m_resolutionUniform, camera.m_width, camera.m_height);

// struct RGBA8 c8 = RGBA8.MakeRGBA8( b2_colorGray2, 1.0f );
// B2GL.Shared.Gl.Uniform3(m_baseColorUniform, c8.r/255.0f, c8.g/255.0f, c8.b/255.0f);
Expand Down
10 changes: 4 additions & 6 deletions src/Box2D.NET.Samples/Graphics/GLCircles.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ public class GLCircles
public const int e_batchSize = 2048;

private GL _gl;
private Camera _camera;
private List<CircleData> m_circles = new List<CircleData>();

private uint[] m_vaoId = new uint[1];
Expand All @@ -27,9 +26,8 @@ public class GLCircles
private int m_projectionUniform;
private int m_pixelScaleUniform;

public void Create(SampleAppContext context)
public void Create(SampleContext context)
{
_camera = context.camera;
_gl = context.gl;

m_programId = _gl.CreateProgramFromFiles("data/circle.vs", "data/circle.fs");
Expand Down Expand Up @@ -108,7 +106,7 @@ public void AddCircle(B2Vec2 center, float radius, B2HexColor color)
m_circles.Add(new CircleData(center, radius, rgba));
}

public void Flush()
public void Flush(Camera camera)
{
int count = m_circles.Count;
if (count == 0)
Expand All @@ -121,10 +119,10 @@ public void Flush()
B2FixedArray16<float> array16 = new B2FixedArray16<float>();
Span<float> proj = array16.AsSpan();

_camera.BuildProjectionMatrix(proj, 0.2f);
camera.BuildProjectionMatrix(proj, 0.2f);

_gl.UniformMatrix4(m_projectionUniform, 1, false, proj);
_gl.Uniform1(m_pixelScaleUniform, _camera.m_height / _camera.m_zoom);
_gl.Uniform1(m_pixelScaleUniform, camera.m_height / camera.m_zoom);

_gl.BindVertexArray(m_vaoId[0]);

Expand Down
8 changes: 3 additions & 5 deletions src/Box2D.NET.Samples/Graphics/GLLines.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,16 @@ public class GLLines
public const int e_batchSize = 2 * 2048;

private GL _gl;
private Camera _camera;
private List<VertexData> m_points = new();

private uint[] m_vaoId = new uint[1];
private uint[] m_vboId = new uint[1];
private uint m_programId;
private int m_projectionUniform;

public void Create(SampleAppContext context)
public void Create(SampleContext context)
{
_gl = context.gl;
_camera = context.camera;

string vs = "#version 330\n"
+ "uniform mat4 projectionMatrix;\n"
Expand Down Expand Up @@ -105,7 +103,7 @@ public void AddLine(B2Vec2 p1, B2Vec2 p2, B2HexColor c)
m_points.Add(new VertexData(p2, rgba));
}

public void Flush()
public void Flush(Camera camera)
{
int count = m_points.Count;
if (count == 0)
Expand All @@ -123,7 +121,7 @@ public void Flush()
B2FixedArray16<float> array16 = new B2FixedArray16<float>();
Span<float> proj = array16.AsSpan();

_camera.BuildProjectionMatrix(proj, 0.1f);
camera.BuildProjectionMatrix(proj, 0.1f);

_gl.UniformMatrix4(m_projectionUniform, 1, false, proj);

Expand Down
10 changes: 4 additions & 6 deletions src/Box2D.NET.Samples/Graphics/GLPoints.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,15 @@ public class GLPoints
public const int e_batchSize = 2048;

private GL _gl;
private Camera _camera;
private List<PointData> m_points = new List<PointData>();

private uint[] m_vaoId = new uint[1];
private uint[] m_vboId = new uint[1];
private uint m_programId;
private int m_projectionUniform;

public void Create(SampleAppContext context)
public void Create(SampleContext context)
{
_camera = context.camera;
_gl = context.gl;

string vs = "#version 330\n" +
Expand Down Expand Up @@ -108,7 +106,7 @@ public void AddPoint(B2Vec2 v, float size, B2HexColor c)
m_points.Add(new PointData(v, size, rgba));
}

public void Flush()
public void Flush(Camera camera)
{
int count = m_points.Count;
if (count == 0)
Expand All @@ -120,8 +118,8 @@ public void Flush()

B2FixedArray16<float> array16 = new B2FixedArray16<float>();
Span<float> proj = array16.AsSpan();
_camera.BuildProjectionMatrix(proj, 0.0f);

camera.BuildProjectionMatrix(proj, 0.0f);

_gl.UniformMatrix4(m_projectionUniform, 1, false, proj);
_gl.BindVertexArray(m_vaoId[0]);
Expand Down
16 changes: 7 additions & 9 deletions src/Box2D.NET.Samples/Graphics/GLSolidCapsules.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,10 @@ namespace Box2D.NET.Samples.Graphics;
public class GLSolidCapsules
{
private static readonly ILogger Logger = Log.ForContext<GLSolidCapsules>();

public const int e_batchSize = 2048;

private GL _gl;
private Camera _camera;
private List<CapsuleData> m_capsules = new List<CapsuleData>();

private uint[] m_vaoId = new uint[1];
Expand All @@ -30,9 +29,8 @@ public class GLSolidCapsules
private int m_projectionUniform;
private int m_pixelScaleUniform;

public void Create(SampleAppContext context)
public void Create(SampleContext context)
{
_camera = context.camera;
_gl = context.gl;

m_programId = _gl.CreateProgramFromFiles("data/solid_capsule.vs", "data/solid_capsule.fs");
Expand Down Expand Up @@ -132,7 +130,7 @@ public void AddCapsule(B2Vec2 p1, B2Vec2 p2, float radius, B2HexColor c)
m_capsules.Add(new CapsuleData(transform, radius, length, rgba));
}

public void Flush()
public void Flush(Camera camera)
{
int count = m_capsules.Count;
if (count == 0)
Expand All @@ -144,11 +142,11 @@ public void Flush()

B2FixedArray16<float> array16 = new B2FixedArray16<float>();
Span<float> proj = array16.AsSpan();
_camera.BuildProjectionMatrix(proj, 0.2f);

camera.BuildProjectionMatrix(proj, 0.2f);

_gl.UniformMatrix4(m_projectionUniform, 1, false, proj);
_gl.Uniform1(m_pixelScaleUniform, _camera.m_height / _camera.m_zoom);
_gl.Uniform1(m_pixelScaleUniform, camera.m_height / camera.m_zoom);

_gl.BindVertexArray(m_vaoId[0]);

Expand Down
10 changes: 4 additions & 6 deletions src/Box2D.NET.Samples/Graphics/GLSolidCircles.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ public class GLSolidCircles
public const int e_batchSize = 2048;

private GL _gl;
private Camera _camera;
private List<SolidCircleData> m_circles = new List<SolidCircleData>();

private uint[] m_vaoId = new uint[1];
Expand All @@ -30,9 +29,8 @@ public class GLSolidCircles
private int m_pixelScaleUniform;


public void Create(SampleAppContext context)
public void Create(SampleContext context)
{
_camera = context.camera;
_gl = context.gl;

m_programId = _gl.CreateProgramFromFiles("data/solid_circle.vs", "data/solid_circle.fs");
Expand Down Expand Up @@ -113,7 +111,7 @@ public void AddCircle(ref B2Transform transform, float radius, B2HexColor color)
m_circles.Add(new SolidCircleData(transform, radius, rgba));
}

public void Flush()
public void Flush(Camera camera)
{
int count = (int)m_circles.Count;
if (count == 0)
Expand All @@ -126,10 +124,10 @@ public void Flush()
B2FixedArray16<float> array16 = new B2FixedArray16<float>();
Span<float> proj = array16.AsSpan();

_camera.BuildProjectionMatrix(proj, 0.2f);
camera.BuildProjectionMatrix(proj, 0.2f);

_gl.UniformMatrix4(m_projectionUniform, 1, false, proj);
_gl.Uniform1(m_pixelScaleUniform, _camera.m_height / _camera.m_zoom);
_gl.Uniform1(m_pixelScaleUniform, camera.m_height / camera.m_zoom);

_gl.BindVertexArray(m_vaoId[0]);

Expand Down
14 changes: 6 additions & 8 deletions src/Box2D.NET.Samples/Graphics/GLSolidPolygons.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ public class GLSolidPolygons
public const int e_batchSize = 512;

private GL _gl;
private Camera _camera;
private List<PolygonData> m_polygons = new List<PolygonData>();

private uint[] m_vaoId = new uint[1];
Expand All @@ -27,9 +26,8 @@ public class GLSolidPolygons
private int m_projectionUniform;
private int m_pixelScaleUniform;

public void Create(SampleAppContext context)
public void Create(SampleContext context)
{
_camera = context.camera;
_gl = context.gl;

m_programId = _gl.CreateProgramFromFiles("data/solid_polygon.vs", "data/solid_polygon.fs");
Expand Down Expand Up @@ -140,7 +138,7 @@ public void AddPolygon(ref B2Transform transform, ReadOnlySpan<B2Vec2> points, i
m_polygons.Add(data);
}

public void Flush()
public void Flush(Camera camera)
{
int count = (int)m_polygons.Count;
if (count == 0)
Expand All @@ -153,11 +151,11 @@ public void Flush()

B2FixedArray16<float> array16 = new B2FixedArray16<float>();
Span<float> proj = array16.AsSpan();
_camera.BuildProjectionMatrix(proj, 0.2f);

camera.BuildProjectionMatrix(proj, 0.2f);

_gl.UniformMatrix4(m_projectionUniform, 1, false, proj);
_gl.Uniform1(m_pixelScaleUniform, _camera.m_height / _camera.m_zoom);
_gl.Uniform1(m_pixelScaleUniform, camera.m_height / camera.m_zoom);

_gl.BindVertexArray(m_vaoId[0]);
_gl.BindBuffer(GLEnum.ArrayBuffer, m_vboIds[1]);
Expand Down
4 changes: 2 additions & 2 deletions src/Box2D.NET.Samples/Helpers/GlfwHelpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ namespace Box2D.NET.Samples.Helpers;

public static class GlfwHelpers
{
public static unsafe InputAction GetKey(SampleAppContext context, Keys key)
public static unsafe InputAction GetKey(SampleContext context, Keys key)
{
if (null == context.glfw)
return InputAction.Release;

var state = context.glfw.GetKey(context.mainWindow, key);
var state = context.glfw.GetKey(context.window, key);
switch (state)
{
case 0: return InputAction.Release;
Expand Down
4 changes: 2 additions & 2 deletions src/Box2D.NET.Samples/Primitives/SampleEntry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ public class SampleEntry
public readonly string Category;
public readonly string Name;
public readonly string Title;
public readonly Func<SampleAppContext, Settings, Sample> CreateFcn;
public readonly Func<SampleContext, Sample> CreateFcn;

public SampleEntry(string category, string name, Func<SampleAppContext, Settings, Sample> createFcn)
public SampleEntry(string category, string name, Func<SampleContext, Sample> createFcn)
{
Category = category;
Name = name;
Expand Down
Loading
Loading