Unstable 1.2.4.0
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
using Microsoft.Xna.Framework;
|
||||
using Microsoft.Xna.Framework.Graphics;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Barotrauma
|
||||
{
|
||||
static class GraphicsQuad
|
||||
{
|
||||
private static VertexBuffer vertexBuffer = null;
|
||||
private static IndexBuffer indexBuffer = null;
|
||||
private static BasicEffect basicEffect = null;
|
||||
private static GraphicsDevice graphicsDevice = null;
|
||||
|
||||
public static void Init(GraphicsDevice graphics)
|
||||
{
|
||||
if (graphicsDevice != null) { return; }
|
||||
|
||||
graphicsDevice = graphics;
|
||||
|
||||
vertexBuffer = new VertexBuffer(graphics, VertexPositionTexture.VertexDeclaration, 4, BufferUsage.WriteOnly);
|
||||
indexBuffer = new IndexBuffer(graphics, IndexElementSize.SixteenBits, 4, BufferUsage.WriteOnly);
|
||||
|
||||
InitVertexData();
|
||||
indexBuffer.SetData(new ushort[] { 0, 1, 2, 3 });
|
||||
|
||||
basicEffect = new BasicEffect(graphics) { TextureEnabled = true };
|
||||
|
||||
GameMain.Instance.ResolutionChanged += () =>
|
||||
{
|
||||
InitVertexData();
|
||||
};
|
||||
}
|
||||
|
||||
private static void InitVertexData()
|
||||
{
|
||||
Vector2 halfPixelOffset = Vector2.Zero;
|
||||
#if LINUX || OSX
|
||||
halfPixelOffset = new Vector2(0.5f / GameMain.GraphicsWidth, 0.5f / GameMain.GraphicsHeight);
|
||||
#endif
|
||||
|
||||
VertexPositionTexture[] vertices =
|
||||
{
|
||||
new VertexPositionTexture(new Vector3(-1f, -1f, 1f), new Vector2(0f, 1f) + halfPixelOffset),
|
||||
new VertexPositionTexture(new Vector3(-1f, 1f, 1f), new Vector2(0f, 0f) + halfPixelOffset),
|
||||
new VertexPositionTexture(new Vector3(1f, -1f, 1f), new Vector2(1f, 1f) + halfPixelOffset),
|
||||
new VertexPositionTexture(new Vector3(1f, 1f, 1f), new Vector2(1f, 0f) + halfPixelOffset)
|
||||
};
|
||||
|
||||
vertexBuffer.SetData(vertices);
|
||||
}
|
||||
|
||||
public static void UseBasicEffect(Texture2D texture)
|
||||
{
|
||||
basicEffect.Texture = texture;
|
||||
basicEffect.CurrentTechnique.Passes[0].Apply();
|
||||
}
|
||||
|
||||
public static void Render()
|
||||
{
|
||||
graphicsDevice.SetVertexBuffer(vertexBuffer);
|
||||
graphicsDevice.Indices = indexBuffer;
|
||||
graphicsDevice.DrawIndexedPrimitives(PrimitiveType.TriangleStrip, 0, 0, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user