Cleaned up graphics stuff (mostly optional parameters)
This commit is contained in:
1 parent
553be47783
commit
c5f5266126
8 files changed
+65
-325
No files matched your search
+12
-67
@@ -19,7 +19,6 @@
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using VocaluxeLib.Menu;
|
||||
@@ -45,11 +44,8 @@ namespace Vocaluxe.Base
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.Show(e.Message + " - Error in initializing of OpenGL. Please check whether" +
|
||||
" your graphic card drivers are up to date.");
|
||||
CLog.LogError(e.Message + " - Error in initializing of OpenGL. Please check whether" +
|
||||
" your graphic card drivers are up to date.");
|
||||
Environment.Exit(Environment.ExitCode);
|
||||
" your graphic card drivers are up to date.", true, true);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -61,14 +57,9 @@ namespace Vocaluxe.Base
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.Show(e.Message + " - Error in initializing of Direct3D. Please check if " +
|
||||
"your DirectX redistributables and graphic card drivers are up to date. You can " +
|
||||
"download the DirectX runtimes at http://www.microsoft.com/download/en/details.aspx?id=8109",
|
||||
CSettings.ProgramName, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
CLog.LogError(e.Message + " - Error in initializing of Direct3D. Please check if " +
|
||||
"your DirectX redistributables and graphic card drivers are up to date. You can " +
|
||||
"download the DirectX runtimes at http://www.microsoft.com/download/en/details.aspx?id=8109");
|
||||
Environment.Exit(Environment.ExitCode);
|
||||
"download the DirectX runtimes at http://www.microsoft.com/download/en/details.aspx?id=8109", true, true);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
@@ -77,7 +68,8 @@ namespace Vocaluxe.Base
|
||||
_Draw = new CDrawWinForm();
|
||||
break;
|
||||
}
|
||||
_Draw.Init();
|
||||
if (!_Draw.Init())
|
||||
CLog.LogError("Could not init drawing interface!", true, true);
|
||||
}
|
||||
|
||||
public static void MainLoop()
|
||||
@@ -86,11 +78,10 @@ namespace Vocaluxe.Base
|
||||
_Draw.MainLoop();
|
||||
}
|
||||
|
||||
public static bool Unload()
|
||||
public static void Unload()
|
||||
{
|
||||
bool result = _Draw.Unload();
|
||||
_Draw.Unload();
|
||||
_Draw = null;
|
||||
return result;
|
||||
}
|
||||
|
||||
public static int GetScreenWidth()
|
||||
@@ -159,37 +150,6 @@ namespace Vocaluxe.Base
|
||||
return _Draw.AddTexture(texturePath);
|
||||
}
|
||||
|
||||
public static STexture AddTexture(string texturePath, int maxSize)
|
||||
{
|
||||
if (maxSize == 0)
|
||||
return _Draw.AddTexture(texturePath);
|
||||
|
||||
if (!File.Exists(texturePath))
|
||||
return new STexture(-1);
|
||||
|
||||
using (Bitmap origin = new Bitmap(texturePath))
|
||||
{
|
||||
int w = maxSize;
|
||||
int h = maxSize;
|
||||
|
||||
if (origin.Width >= origin.Height && origin.Width > w)
|
||||
h = (int)Math.Round((float)w / origin.Width * origin.Height);
|
||||
else if (origin.Height > origin.Width && origin.Height > h)
|
||||
w = (int)Math.Round((float)h / origin.Height * origin.Width);
|
||||
|
||||
using (Bitmap bmp = new Bitmap(origin, w, h))
|
||||
{
|
||||
STexture tex = _Draw.AddTexture(bmp);
|
||||
return tex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static STexture AddTexture(int w, int h, IntPtr data)
|
||||
{
|
||||
return _Draw.AddTexture(w, h, data);
|
||||
}
|
||||
|
||||
public static STexture AddTexture(int w, int h, ref byte[] data)
|
||||
{
|
||||
return _Draw.AddTexture(w, h, ref data);
|
||||
@@ -205,11 +165,6 @@ namespace Vocaluxe.Base
|
||||
return _Draw.UpdateTexture(ref texture, ref data);
|
||||
}
|
||||
|
||||
public static bool UpdateTexture(ref STexture texture, IntPtr data)
|
||||
{
|
||||
return _Draw.UpdateTexture(ref texture, data);
|
||||
}
|
||||
|
||||
public static void RemoveTexture(ref STexture texture)
|
||||
{
|
||||
_Draw.RemoveTexture(ref texture);
|
||||
@@ -225,22 +180,12 @@ namespace Vocaluxe.Base
|
||||
_Draw.DrawTexture(texture, rect);
|
||||
}
|
||||
|
||||
public static void DrawTexture(STexture texture, SRectF rect, SColorF color)
|
||||
{
|
||||
_Draw.DrawTexture(texture, rect, color);
|
||||
}
|
||||
|
||||
public static void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds)
|
||||
{
|
||||
_Draw.DrawTexture(texture, rect, color, bounds);
|
||||
}
|
||||
|
||||
public static void DrawTexture(STexture texture, SRectF rect, SColorF color, bool mirrored)
|
||||
public static void DrawTexture(STexture texture, SRectF rect, SColorF color, bool mirrored = false)
|
||||
{
|
||||
_Draw.DrawTexture(texture, rect, color, mirrored);
|
||||
}
|
||||
|
||||
public static void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored)
|
||||
public static void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
|
||||
{
|
||||
_Draw.DrawTexture(texture, rect, color, bounds, mirrored);
|
||||
}
|
||||
@@ -252,12 +197,12 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static void DrawTexture(CStatic staticBounds, STexture texture, EAspect aspect)
|
||||
{
|
||||
if (texture.Height <= 0f)
|
||||
return;
|
||||
|
||||
RectangleF bounds = new RectangleF(staticBounds.Rect.X, staticBounds.Rect.Y, staticBounds.Rect.W, staticBounds.Rect.H);
|
||||
RectangleF rect = new RectangleF(0f, 0f, texture.Width, texture.Height);
|
||||
|
||||
if (rect.Height <= 0f)
|
||||
return;
|
||||
|
||||
CHelper.SetRect(bounds, out rect, rect.Width / rect.Height, aspect);
|
||||
DrawTexture(texture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, staticBounds.Rect.Z),
|
||||
texture.Color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
|
||||
@@ -270,7 +215,7 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static int TextureCount()
|
||||
{
|
||||
return _Draw.TextureCount();
|
||||
return _Draw.GetTextureCount();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -21,6 +21,7 @@ using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Vocaluxe.Base
|
||||
{
|
||||
@@ -111,12 +112,17 @@ namespace Vocaluxe.Base
|
||||
}
|
||||
|
||||
#region LogError
|
||||
public static void LogError(string errorText)
|
||||
public static void LogError(string errorText, bool show = false, bool exit = false, Exception e = null)
|
||||
{
|
||||
_NumErrors++;
|
||||
|
||||
_ErrorLog.Add(_NumErrors + ") " + errorText);
|
||||
if (show)
|
||||
MessageBox.Show(errorText, CSettings.ProgramName, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
if (e != null)
|
||||
errorText += ": " + e;
|
||||
_ErrorLog.Add(_NumErrors + ") " + errorText + "\r\n");
|
||||
_ErrorLog.Add(String.Empty);
|
||||
if (exit)
|
||||
Environment.Exit(Environment.ExitCode);
|
||||
}
|
||||
#endregion LogError
|
||||
|
||||
|
||||
@@ -350,12 +350,7 @@ namespace Vocaluxe.Base
|
||||
CDraw.DrawTexture(texture, rect, color);
|
||||
}
|
||||
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds)
|
||||
{
|
||||
CDraw.DrawTexture(texture, rect, color, bounds);
|
||||
}
|
||||
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored)
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
|
||||
{
|
||||
CDraw.DrawTexture(texture, rect, color, bounds, mirrored);
|
||||
}
|
||||
|
||||
@@ -100,11 +100,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
}
|
||||
catch (Direct3DX9NotFoundException e)
|
||||
{
|
||||
MessageBox.Show("No DirectX runtimes were found, please download and install them " +
|
||||
"from http://www.microsoft.com/download/en/details.aspx?id=8109",
|
||||
CSettings.ProgramName, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
CLog.LogError(e.Message + " - No DirectX runtimes were found, please download and install them from http://www.microsoft.com/download/en/details.aspx?id=8109");
|
||||
Environment.Exit(Environment.ExitCode);
|
||||
CLog.LogError("No DirectX runtimes were found, please download and install them from http://www.microsoft.com/download/en/details.aspx?id=8109", true, true, e);
|
||||
}
|
||||
|
||||
Paint += _OnPaintEvent;
|
||||
@@ -197,12 +193,9 @@ namespace Vocaluxe.Lib.Draw
|
||||
{
|
||||
if (_Device == null || _Device.Disposed)
|
||||
{
|
||||
MessageBox.Show("Something went wrong during device creating, please check if your DirectX redistributables " +
|
||||
"and graphic card drivers are up to date. You can download the DirectX runtimes at http://www.microsoft.com/download/en/details.aspx?id=8109",
|
||||
CSettings.ProgramName, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
CLog.LogError(
|
||||
"Something went wrong during device creating, please check if your DirectX redistributables and grafic card drivers are up to date. You can download the DirectX runtimes at http://www.microsoft.com/download/en/details.aspx?id=8109");
|
||||
Environment.Exit(Environment.ExitCode);
|
||||
"Something went wrong during device creating, please check if your DirectX redistributables and grafic card drivers are up to date. You can download the DirectX runtimes at http://www.microsoft.com/download/en/details.aspx?id=8109",
|
||||
true, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -579,7 +572,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
/// Unloads all Textures and other objects used by Direct3D for rendering
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool Unload()
|
||||
public void Unload()
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -587,10 +580,10 @@ namespace Vocaluxe.Lib.Draw
|
||||
}
|
||||
catch {}
|
||||
//Dispose all textures
|
||||
foreach (KeyValuePair<int, Texture> p in _D3DTextures)
|
||||
foreach (Texture texture in _D3DTextures.Values)
|
||||
{
|
||||
if (p.Value != null)
|
||||
p.Value.Dispose();
|
||||
if (texture != null)
|
||||
texture.Dispose();
|
||||
}
|
||||
|
||||
STexturedColoredVertex.GetDeclaration(_Device).Dispose();
|
||||
@@ -598,7 +591,6 @@ namespace Vocaluxe.Lib.Draw
|
||||
_IndexBuffer.Dispose();
|
||||
_Device.Dispose();
|
||||
_D3D.Dispose();
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -920,13 +912,6 @@ namespace Vocaluxe.Lib.Draw
|
||||
return AddTexture(w, h, ref data);
|
||||
}
|
||||
|
||||
public STexture AddTexture(int w, int h, IntPtr data)
|
||||
{
|
||||
byte[] pointerData = new Byte[4 * w * h];
|
||||
Marshal.Copy(data, pointerData, 0, pointerData.Length);
|
||||
return AddTexture(w, h, ref pointerData);
|
||||
}
|
||||
|
||||
public STexture AddTexture(int w, int h, ref byte[] data)
|
||||
{
|
||||
STexture texture = new STexture(-1);
|
||||
@@ -1002,20 +987,6 @@ namespace Vocaluxe.Lib.Draw
|
||||
#endregion adding
|
||||
|
||||
#region updating
|
||||
/// <summary>
|
||||
/// Updates the data of a texture
|
||||
/// </summary>
|
||||
/// <param name="texture">The texture to update</param>
|
||||
/// <param name="data">A Pointer containing the data of which the texture should be updated</param>
|
||||
/// <returns>True if succeeded</returns>
|
||||
public bool UpdateTexture(ref STexture texture, IntPtr data)
|
||||
{
|
||||
byte[] pointerData = new Byte[4 * (int)texture.Width * (int)texture.Height];
|
||||
Marshal.Copy(data, pointerData, 0, pointerData.Length);
|
||||
|
||||
return UpdateTexture(ref texture, ref pointerData);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the data of a texture
|
||||
/// </summary>
|
||||
@@ -1123,30 +1094,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
/// <param name="rect">A SRectF struct containing the destination coordinates</param>
|
||||
public void DrawTexture(STexture texture, SRectF rect)
|
||||
{
|
||||
DrawTexture(texture, rect, texture.Color, false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Draws a texture
|
||||
/// </summary>
|
||||
/// <param name="texture">The texture to be drawn</param>
|
||||
/// <param name="rect">A SRectF struct containing the destination coordinates</param>
|
||||
/// <param name="color">A SColorF struct containing a color which the texture will be colored in</param>
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color)
|
||||
{
|
||||
DrawTexture(texture, rect, color, false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Draws a texture
|
||||
/// </summary>
|
||||
/// <param name="texture">The texture to be drawn</param>
|
||||
/// <param name="rect">A SRectF struct containing the destination coordinates</param>
|
||||
/// <param name="color">A SColorF struct containing a color which the texture will be colored in</param>
|
||||
/// <param name="bounds">A SRectF struct containing which part of the texture should be drawn</param>
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds)
|
||||
{
|
||||
DrawTexture(texture, rect, color, bounds, false);
|
||||
DrawTexture(texture, rect, texture.Color);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1156,7 +1104,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
/// <param name="rect">A SRectF struct containing the destination coordinates</param>
|
||||
/// <param name="color">A SColorF struct containing a color which the texture will be colored in</param>
|
||||
/// <param name="mirrored">True if the texture should be mirrored</param>
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, bool mirrored)
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, bool mirrored = false)
|
||||
{
|
||||
DrawTexture(texture, rect, color, new SRectF(0, 0, CSettings.RenderW, CSettings.RenderH, rect.Z), mirrored);
|
||||
}
|
||||
@@ -1169,7 +1117,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
/// <param name="color">A SColorF struct containing a color which the texture will be colored in</param>
|
||||
/// <param name="bounds">A SRectF struct containing which part of the texture should be drawn</param>
|
||||
/// <param name="mirrored">True if the texture should be mirrored</param>
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored)
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
|
||||
{
|
||||
if (_TextureExists(ref texture))
|
||||
{
|
||||
@@ -1408,7 +1356,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
/// Gets the count of current textures
|
||||
/// </summary>
|
||||
/// <returns>The amount of textures</returns>
|
||||
public int TextureCount()
|
||||
public int GetTextureCount()
|
||||
{
|
||||
return _Textures.Count;
|
||||
}
|
||||
|
||||
@@ -264,7 +264,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
Close();
|
||||
}
|
||||
|
||||
public bool Unload()
|
||||
public void Unload()
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -272,7 +272,6 @@ namespace Vocaluxe.Lib.Draw
|
||||
}
|
||||
catch {}
|
||||
Dispose();
|
||||
return true;
|
||||
}
|
||||
|
||||
public int GetScreenWidth()
|
||||
@@ -399,11 +398,6 @@ namespace Vocaluxe.Lib.Draw
|
||||
}
|
||||
}
|
||||
|
||||
public STexture AddTexture(int w, int h, IntPtr data)
|
||||
{
|
||||
return new STexture(-1);
|
||||
}
|
||||
|
||||
public STexture EnqueueTexture(int w, int h, ref byte[] data)
|
||||
{
|
||||
return AddTexture(w, h, ref data);
|
||||
@@ -420,11 +414,6 @@ namespace Vocaluxe.Lib.Draw
|
||||
}
|
||||
}
|
||||
|
||||
public bool UpdateTexture(ref STexture texture, IntPtr data)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool UpdateTexture(ref STexture texture, ref byte[] data)
|
||||
{
|
||||
if ((texture.Index >= 0) && (_Textures.Count > 0) && (_Bitmaps.Count > texture.Index))
|
||||
@@ -449,25 +438,13 @@ namespace Vocaluxe.Lib.Draw
|
||||
DrawTexture(texture, rect, texture.Color);
|
||||
}
|
||||
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color)
|
||||
{
|
||||
if ((texture.Index >= 0) && (_Textures.Count > 0) && (_Bitmaps.Count > texture.Index))
|
||||
DrawTexture(texture, rect, color, rect, false);
|
||||
}
|
||||
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds)
|
||||
{
|
||||
if ((texture.Index >= 0) && (_Textures.Count > 0) && (_Bitmaps.Count > texture.Index))
|
||||
DrawTexture(texture, rect, color, bounds, false);
|
||||
}
|
||||
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, bool mirrored)
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, bool mirrored = false)
|
||||
{
|
||||
if ((texture.Index >= 0) && (_Textures.Count > 0) && (_Bitmaps.Count > texture.Index))
|
||||
DrawTexture(texture, rect, color, rect, mirrored);
|
||||
}
|
||||
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored)
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
|
||||
{
|
||||
if ((texture.Index >= 0) && (_Textures.Count > 0) && (_Bitmaps.Count > texture.Index))
|
||||
{
|
||||
@@ -481,7 +458,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
public void DrawTextureReflection(STexture texture, SRectF rect, SColorF color, SRectF bounds, float space, float height) {}
|
||||
|
||||
public int TextureCount()
|
||||
public int GetTextureCount()
|
||||
{
|
||||
return _Textures.Count;
|
||||
}
|
||||
|
||||
+17
-132
@@ -30,7 +30,6 @@ using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows.Forms;
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Base.Fonts;
|
||||
using VocaluxeLib.Menu;
|
||||
using BeginMode = OpenTK.Graphics.OpenGL.BeginMode;
|
||||
using BlendingFactorDest = OpenTK.Graphics.OpenGL.BlendingFactorDest;
|
||||
@@ -459,7 +458,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
Close();
|
||||
}
|
||||
|
||||
public bool Unload()
|
||||
public void Unload()
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -470,8 +469,6 @@ namespace Vocaluxe.Lib.Draw
|
||||
_Textures.Values.CopyTo(textures, 0);
|
||||
for (int i = 0; i < _Textures.Count; i++)
|
||||
RemoveTexture(ref textures[i]);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public int GetScreenWidth()
|
||||
@@ -570,7 +567,18 @@ namespace Vocaluxe.Lib.Draw
|
||||
}
|
||||
}
|
||||
|
||||
public void DrawLine(int a, int r, int g, int b, int w, int x1, int y1, int x2, int y2) {}
|
||||
public void DrawLine(int a, int r, int g, int b, int w, int x1, int y1, int x2, int y2)
|
||||
{
|
||||
GL.Enable(EnableCap.Blend);
|
||||
GL.Color4(r, g, b, a * CGraphics.GlobalAlpha);
|
||||
|
||||
GL.Begin(BeginMode.Lines);
|
||||
GL.Vertex3(x1, y1, CGraphics.ZOffset);
|
||||
GL.Vertex3(x2, y2, CGraphics.ZOffset);
|
||||
GL.End();
|
||||
|
||||
GL.Disable(EnableCap.Blend);
|
||||
}
|
||||
|
||||
public void DrawColor(SColorF color, SRectF rect)
|
||||
{
|
||||
@@ -774,66 +782,6 @@ namespace Vocaluxe.Lib.Draw
|
||||
return texture;
|
||||
}
|
||||
|
||||
public STexture AddTexture(int w, int h, IntPtr data)
|
||||
{
|
||||
STexture texture = new STexture(-1);
|
||||
|
||||
if (_UsePBO)
|
||||
{
|
||||
try
|
||||
{
|
||||
GL.GenBuffers(1, out texture.PBO);
|
||||
GL.BindBuffer(BufferTarget.PixelUnpackBuffer, texture.PBO);
|
||||
GL.BufferData(BufferTarget.PixelUnpackBuffer, (IntPtr)(w * h * 4), IntPtr.Zero, BufferUsageHint.StreamDraw);
|
||||
GL.BindBuffer(BufferTarget.PixelUnpackBuffer, 0);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_UsePBO = false;
|
||||
}
|
||||
}
|
||||
|
||||
int id = GL.GenTexture();
|
||||
GL.BindTexture(TextureTarget.Texture2D, id);
|
||||
texture.ID = id;
|
||||
|
||||
texture.Width = w;
|
||||
texture.Height = h;
|
||||
texture.W2 = MathHelper.NextPowerOfTwo(texture.Width);
|
||||
texture.H2 = MathHelper.NextPowerOfTwo(texture.Height);
|
||||
|
||||
texture.WidthRatio = texture.Width / texture.W2;
|
||||
texture.HeightRatio = texture.Height / texture.H2;
|
||||
|
||||
GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, (int)texture.W2, (int)texture.H2, 0, PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero);
|
||||
|
||||
GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, w, h, PixelFormat.Bgra, PixelType.UnsignedByte, data);
|
||||
|
||||
|
||||
//GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureParameterName.ClampToEdge);
|
||||
//GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureParameterName.ClampToEdge);
|
||||
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
|
||||
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear);
|
||||
|
||||
//GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.LinearMipmapLinear);
|
||||
//GL.GenerateMipmap(GenerateMipmapTarget.Texture2D);
|
||||
//GL.Ext.GenerateMipmap(GenerateMipmapTarget.Texture2D);
|
||||
GL.BindTexture(TextureTarget.Texture2D, 0);
|
||||
|
||||
// Add to Texture List
|
||||
texture.Color = new SColorF(1f, 1f, 1f, 1f);
|
||||
texture.Rect = new SRectF(0f, 0f, texture.Width, texture.Height, 0f);
|
||||
texture.TexturePath = String.Empty;
|
||||
|
||||
lock (_MutexTexture)
|
||||
{
|
||||
texture.Index = _IDs.Dequeue();
|
||||
_Textures[texture.Index] = texture;
|
||||
}
|
||||
|
||||
return texture;
|
||||
}
|
||||
|
||||
public STexture AddTexture(int w, int h, ref byte[] data)
|
||||
{
|
||||
STexture texture = new STexture(-1);
|
||||
@@ -916,59 +864,6 @@ namespace Vocaluxe.Lib.Draw
|
||||
#endregion adding
|
||||
|
||||
#region updating
|
||||
public bool UpdateTexture(ref STexture texture, IntPtr data)
|
||||
{
|
||||
if (_TextureExists(ref texture))
|
||||
{
|
||||
if (_UsePBO)
|
||||
{
|
||||
try
|
||||
{
|
||||
GL.BindBuffer(BufferTarget.PixelUnpackBuffer, texture.PBO);
|
||||
|
||||
IntPtr buffer = GL.MapBuffer(BufferTarget.PixelUnpackBuffer, BufferAccess.WriteOnly);
|
||||
byte[] d = new byte[(int)texture.Height * (int)texture.Width * 4];
|
||||
|
||||
Marshal.Copy(data, d, 0, (int)texture.Height * (int)texture.Width * 4);
|
||||
Marshal.Copy(d, 0, buffer, (int)texture.Height * (int)texture.Width * 4);
|
||||
|
||||
GL.UnmapBuffer(BufferTarget.PixelUnpackBuffer);
|
||||
|
||||
GL.BindTexture(TextureTarget.Texture2D, texture.ID);
|
||||
GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, (int)texture.Width, (int)texture.Height, PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero);
|
||||
|
||||
GL.BindTexture(TextureTarget.Texture2D, 0);
|
||||
GL.BindBuffer(BufferTarget.PixelUnpackBuffer, 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_UsePBO = false;
|
||||
}
|
||||
}
|
||||
|
||||
GL.BindTexture(TextureTarget.Texture2D, texture.ID);
|
||||
|
||||
GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, (int)texture.Width, (int)texture.Height, PixelFormat.Bgra, PixelType.UnsignedByte, data);
|
||||
|
||||
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureParameterName.ClampToEdge);
|
||||
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureParameterName.ClampToEdge);
|
||||
|
||||
//GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
|
||||
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear);
|
||||
|
||||
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.LinearMipmapLinear);
|
||||
//GL.GenerateMipmap(GenerateMipmapTarget.Texture2D);
|
||||
GL.Ext.GenerateMipmap(GenerateMipmapTarget.Texture2D);
|
||||
|
||||
GL.BindTexture(TextureTarget.Texture2D, 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool UpdateTexture(ref STexture texture, ref byte[] data)
|
||||
{
|
||||
if (_TextureExists(ref texture))
|
||||
@@ -1052,25 +947,15 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
public void DrawTexture(STexture texture, SRectF rect)
|
||||
{
|
||||
DrawTexture(texture, rect, texture.Color, false);
|
||||
DrawTexture(texture, rect, texture.Color);
|
||||
}
|
||||
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color)
|
||||
{
|
||||
DrawTexture(texture, rect, color, false);
|
||||
}
|
||||
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds)
|
||||
{
|
||||
DrawTexture(texture, rect, color, bounds, false);
|
||||
}
|
||||
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, bool mirrored)
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, bool mirrored = false)
|
||||
{
|
||||
DrawTexture(texture, rect, color, new SRectF(0, 0, CSettings.RenderW, CSettings.RenderH, rect.Z), mirrored);
|
||||
}
|
||||
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored)
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
|
||||
{
|
||||
if (Math.Abs(rect.W) < float.Epsilon || Math.Abs(rect.H) < float.Epsilon || Math.Abs(bounds.H) < float.Epsilon || Math.Abs(bounds.W) < float.Epsilon ||
|
||||
Math.Abs(color.A) < float.Epsilon)
|
||||
@@ -1306,7 +1191,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
}
|
||||
#endregion drawing
|
||||
|
||||
public int TextureCount()
|
||||
public int GetTextureCount()
|
||||
{
|
||||
return _Textures.Count;
|
||||
}
|
||||
|
||||
+10
-15
@@ -27,15 +27,12 @@ namespace Vocaluxe.Lib.Draw
|
||||
{
|
||||
bool Init();
|
||||
void MainLoop();
|
||||
bool Unload();
|
||||
void Unload();
|
||||
|
||||
int GetScreenWidth();
|
||||
int GetScreenHeight();
|
||||
|
||||
// Basic Draw Methods
|
||||
void DrawLine(int a, int r, int g, int b, int w, int x1, int y1, int x2, int y2);
|
||||
void DrawColor(SColorF color, SRectF rect);
|
||||
void DrawColorReflection(SColorF color, SRectF rect, float space, float height);
|
||||
int GetTextureCount();
|
||||
|
||||
void ClearScreen();
|
||||
STexture CopyScreen();
|
||||
@@ -44,24 +41,22 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
STexture AddTexture(string texturePath);
|
||||
STexture AddTexture(Bitmap bitmap);
|
||||
STexture AddTexture(int w, int h, IntPtr data);
|
||||
STexture AddTexture(int w, int h, ref byte[] data);
|
||||
STexture EnqueueTexture(int w, int h, ref byte[] data);
|
||||
bool UpdateTexture(ref STexture texture, ref byte[] data);
|
||||
bool UpdateTexture(ref STexture texture, IntPtr data);
|
||||
|
||||
void RemoveTexture(ref STexture texture);
|
||||
|
||||
// Basic Draw Methods
|
||||
void DrawLine(int a, int r, int g, int b, int w, int x1, int y1, int x2, int y2);
|
||||
void DrawColor(SColorF color, SRectF rect);
|
||||
void DrawColorReflection(SColorF color, SRectF rect, float space, float height);
|
||||
|
||||
void DrawTexture(STexture texture);
|
||||
void DrawTexture(STexture texture, SRectF rect);
|
||||
void DrawTexture(STexture texture, SRectF rect, SColorF color);
|
||||
void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds);
|
||||
|
||||
void DrawTexture(STexture texture, SRectF rect, SColorF color, bool mirrored);
|
||||
void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored);
|
||||
void DrawTexture(STexture texture, SRectF rect, SColorF color, bool mirrored = false);
|
||||
void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false);
|
||||
void DrawTexture(STexture texture, SRectF rect, SColorF color, float begin, float end);
|
||||
|
||||
void DrawTextureReflection(STexture texture, SRectF rect, SColorF color, SRectF bounds, float space, float height);
|
||||
|
||||
int TextureCount();
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,6 @@ using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Drawing;
|
||||
using VocaluxeLib.Menu.SongMenu;
|
||||
using VocaluxeLib.PartyModes;
|
||||
|
||||
namespace VocaluxeLib.Menu
|
||||
{
|
||||
@@ -60,15 +59,6 @@ namespace VocaluxeLib.Menu
|
||||
void ProcessMouseMove(int x, int y);
|
||||
}
|
||||
|
||||
public interface IMenuParty
|
||||
{
|
||||
void SetPartyModeID(int partyModeID);
|
||||
int GetPartyModeID();
|
||||
|
||||
void AssingPartyMode(IPartyMode partyMode);
|
||||
void DataToScreen(Object data);
|
||||
}
|
||||
|
||||
public interface IConfig
|
||||
{
|
||||
void SetBackgroundMusicVolume(int newVolume);
|
||||
@@ -161,8 +151,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
void DrawTexture(STexture texture, SRectF rect);
|
||||
void DrawTexture(STexture texture, SRectF rect, SColorF color);
|
||||
void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds);
|
||||
void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored);
|
||||
void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false);
|
||||
void DrawTextureReflection(STexture texture, SRectF rect, SColorF color, SRectF bounds, float reflectionSpace, float reflectionHeight);
|
||||
|
||||
void RemoveTexture(ref STexture texture);
|
||||
|
||||
Reference in new issue
Block a user