diff --git a/OpenTK/Graphics/IGraphicsContext.cs b/OpenTK/Graphics/IGraphicsContext.cs index 8a69f8604..2b385e07b 100644 --- a/OpenTK/Graphics/IGraphicsContext.cs +++ b/OpenTK/Graphics/IGraphicsContext.cs @@ -17,7 +17,7 @@ namespace OpenTK.Graphics { public abstract void SwapBuffers(); - public abstract bool VSync { get; set; } + public abstract bool VSync { set; } public virtual void Update(INativeWindow window) { } diff --git a/OpenTK/Platform/MacOS/AglContext.cs b/OpenTK/Platform/MacOS/AglContext.cs index 45dfe45e9..ef5284721 100644 --- a/OpenTK/Platform/MacOS/AglContext.cs +++ b/OpenTK/Platform/MacOS/AglContext.cs @@ -10,7 +10,6 @@ namespace OpenTK.Platform.MacOS { class AglContext : IGraphicsContext { - bool mVSync = false; // Todo: keep track of which display adapter was specified when the context was created. // IntPtr displayID; bool mIsFullscreen = false; @@ -182,11 +181,9 @@ namespace OpenTK.Platform.MacOS { } public override bool VSync { - get { return mVSync; } set { int intVal = value ? 1 : 0; Agl.aglSetInteger(ContextHandle, Agl.AGL_SWAP_INTERVAL, ref intVal); - mVSync = value; } } diff --git a/OpenTK/Platform/Windows/Wgl.cs b/OpenTK/Platform/Windows/Wgl.cs index d0bc8d299..258afb0d2 100644 --- a/OpenTK/Platform/Windows/Wgl.cs +++ b/OpenTK/Platform/Windows/Wgl.cs @@ -19,27 +19,17 @@ namespace OpenTK.Platform.Windows { } internal static void LoadEntryPoints() { - IntPtr address = GetAddress("wglGetSwapIntervalEXT"); - if (address != IntPtr.Zero) { - wglGetSwapIntervalEXT = (GetSwapIntervalEXT)Marshal.GetDelegateForFunctionPointer( - address, typeof(GetSwapIntervalEXT)); - } + IntPtr address = GetAddress("wglSwapIntervalEXT"); + if (address == IntPtr.Zero) return; - address = GetAddress("wglSwapIntervalEXT"); - if (address != IntPtr.Zero) { - wglSwapIntervalEXT = (SwapIntervalEXT)Marshal.GetDelegateForFunctionPointer( - address, typeof(SwapIntervalEXT)); - } + wglSwapIntervalEXT = (SwapIntervalEXT)Marshal.GetDelegateForFunctionPointer( + address, typeof(SwapIntervalEXT)); } [SuppressUnmanagedCodeSecurity] internal delegate Boolean SwapIntervalEXT(int interval); internal static SwapIntervalEXT wglSwapIntervalEXT; - [SuppressUnmanagedCodeSecurity] - internal delegate int GetSwapIntervalEXT(); - internal static GetSwapIntervalEXT wglGetSwapIntervalEXT; - [DllImport("OPENGL32.DLL", SetLastError = true)] internal extern static IntPtr wglCreateContext(IntPtr hDc); [DllImport("OPENGL32.DLL", SetLastError = true)] diff --git a/OpenTK/Platform/Windows/WinGLContext.cs b/OpenTK/Platform/Windows/WinGLContext.cs index 669b7839c..1ba552cdc 100644 --- a/OpenTK/Platform/Windows/WinGLContext.cs +++ b/OpenTK/Platform/Windows/WinGLContext.cs @@ -46,9 +46,9 @@ namespace OpenTK.Platform.Windows { "Error: " + Marshal.GetLastWin32Error()); } - dc = Wgl.wglGetCurrentDC(); + dc = Wgl.wglGetCurrentDC(); Wgl.LoadEntryPoints(); - vsync_supported = Wgl.wglGetSwapIntervalEXT != null && Wgl.wglSwapIntervalEXT != null; + vsync_supported = Wgl.wglSwapIntervalEXT != null; } public override void SwapBuffers() { @@ -58,10 +58,8 @@ namespace OpenTK.Platform.Windows { } public override bool VSync { - get { return vsync_supported && Wgl.wglGetSwapIntervalEXT() != 0; } set { - if (vsync_supported) - Wgl.wglSwapIntervalEXT(value ? 1 : 0); + if (vsync_supported) Wgl.wglSwapIntervalEXT(value ? 1 : 0); } } diff --git a/OpenTK/Platform/X11/X11GLContext.cs b/OpenTK/Platform/X11/X11GLContext.cs index 7155c39f0..294cfcd6e 100644 --- a/OpenTK/Platform/X11/X11GLContext.cs +++ b/OpenTK/Platform/X11/X11GLContext.cs @@ -18,7 +18,6 @@ namespace OpenTK.Platform.X11 { #if !USE_DX X11Window cur; bool vsync_supported; - int vsync_interval; public X11GLContext(GraphicsMode mode, X11Window window) { Debug.Print("Creating X11GLContext context: "); @@ -54,14 +53,10 @@ namespace OpenTK.Platform.X11 { } public override bool VSync { - get { return vsync_supported && vsync_interval != 0; } set { - if (vsync_supported) { - int result = Glx.glXSwapIntervalSGI(value ? 1 : 0); - if (result != 0) - Debug.Print("VSync = {0} failed, error code: {1}.", value, result); - vsync_interval = value ? 1 : 0; - } + if (!vsync_supported) return; + int result = Glx.glXSwapIntervalSGI(value ? 1 : 0); + if (result != 0) Debug.Print("VSync = {0} failed, error {1}.", value, result); } } diff --git a/src/Client/Client.vcxproj.filters b/src/Client/Client.vcxproj.filters index 718589525..c8d4f21ee 100644 --- a/src/Client/Client.vcxproj.filters +++ b/src/Client/Client.vcxproj.filters @@ -100,9 +100,6 @@ {dead5fb3-a62a-4eb7-8d74-ce73e66ab9e6} - - {8ceea67c-909a-4224-824e-30407393055e} - {7704f4d9-92d9-424b-904f-80ec51f313f6} @@ -231,9 +228,6 @@ Header Files\2D\Utils - - Header Files\Rendering\Env - Header Files\Generator @@ -345,6 +339,9 @@ Header Files\Platform + + Header Files\Rendering + diff --git a/src/Client/PacketHandlers.c b/src/Client/PacketHandlers.c index d43fe02bc..2e5ea1578 100644 --- a/src/Client/PacketHandlers.c +++ b/src/Client/PacketHandlers.c @@ -207,7 +207,7 @@ static void WoM_CheckMotd(void) { static void WoM_CheckSendWomID(void) { if (wom_sendId && !wom_sentId) { String msg = String_FromConst("/womid WoMClient-2.0.7"); - ServerConnection_SendChat(&msg); + Chat_Send(&msg, false); wom_sentId = true; } } diff --git a/src/Client/WinWindow.c b/src/Client/WinWindow.c index 17fd3cfbb..897864ff2 100644 --- a/src/Client/WinWindow.c +++ b/src/Client/WinWindow.c @@ -673,9 +673,7 @@ void GLContext_SelectGraphicsMode(struct GraphicsMode mode) { HGLRC ctx_Handle; HDC ctx_DC; typedef BOOL (WINAPI *FN_WGLSWAPINTERVAL)(int interval); -typedef int (WINAPI *FN_WGLGETSWAPINTERVAL)(void); FN_WGLSWAPINTERVAL wglSwapIntervalEXT; -FN_WGLGETSWAPINTERVAL wglGetSwapIntervalEXT; bool ctx_supports_vSync; void GLContext_Init(struct GraphicsMode mode) { @@ -691,11 +689,10 @@ void GLContext_Init(struct GraphicsMode mode) { if (!wglMakeCurrent(win_DC, ctx_Handle)) { ErrorHandler_FailWithCode(GetLastError(), "Failed to make OpenGL context current"); } - ctx_DC = wglGetCurrentDC(); - wglGetSwapIntervalEXT = (FN_WGLGETSWAPINTERVAL)GLContext_GetAddress("wglGetSwapIntervalEXT"); + ctx_DC = wglGetCurrentDC(); wglSwapIntervalEXT = (FN_WGLSWAPINTERVAL)GLContext_GetAddress("wglSwapIntervalEXT"); - ctx_supports_vSync = wglGetSwapIntervalEXT != NULL && wglSwapIntervalEXT != NULL; + ctx_supports_vSync = wglSwapIntervalEXT != NULL; } void GLContext_Update(void) { } @@ -717,10 +714,6 @@ void GLContext_SwapBuffers(void) { } } -bool GLContext_GetVSync(void) { - return ctx_supports_vSync && wglGetSwapIntervalEXT(); -} - void GLContext_SetVSync(bool enabled) { if (ctx_supports_vSync) wglSwapIntervalEXT(enabled); } diff --git a/src/Client/Window.h b/src/Client/Window.h index 8fa130012..bca2a51a6 100644 --- a/src/Client/Window.h +++ b/src/Client/Window.h @@ -33,10 +33,10 @@ OTHER DEALINGS IN THE SOFTWARE. */ -#define WINDOW_STATE_NORMAL 0 -#define WINDOW_STATE_MINIMISED 1 -#define WINDOW_STATE_MAXIMISED 2 -#define WINDOW_STATE_FULLSCREEN 3 +enum WINDOW_STATE { + WINDOW_STATE_NORMAL, WINDOW_STATE_MINIMISED, + WINDOW_STATE_MAXIMISED, WINDOW_STATE_FULLSCREEN, +}; void Window_Create(Int32 x, Int32 y, Int32 width, Int32 height, STRING_REF String* title, struct GraphicsMode* mode, struct DisplayDevice* device); @@ -81,7 +81,6 @@ void GLContext_Free(void); #define GLContext_IsInvalidAddress(ptr) (ptr == (void*)0 || ptr == (void*)1 || ptr == (void*)-1 || ptr == (void*)2) void* GLContext_GetAddress(const UChar* function); void GLContext_SwapBuffers(void); -bool GLContext_GetVSync(void); void GLContext_SetVSync(bool enabled); #endif #endif diff --git a/src/Client/X11Window.c b/src/Client/X11Window.c index 481e61c68..fd6bbb4d2 100644 --- a/src/Client/X11Window.c +++ b/src/Client/X11Window.c @@ -668,7 +668,6 @@ GLXContext ctx_Handle; typedef int (*FN_GLXSWAPINTERVAL)(int interval); FN_GLXSWAPINTERVAL glXSwapIntervalSGI; bool ctx_supports_vSync; -Int32 ctx_vsync_interval; void GLContext_Init(struct GraphicsMode mode) { ctx_Handle = glXCreateContext(win_display, &win_visual, NULL, true); @@ -712,18 +711,11 @@ void GLContext_SwapBuffers(void) { glXSwapBuffers(win_display, win_handle); } -bool GLContext_GetVSync(void) { - return ctx_supports_vSync && ctx_vsync_interval; -} - void GLContext_SetVSync(bool enabled) { if (!ctx_supports_vSync) return; int result = glXSwapIntervalSGI(enabled); - if (result != 0) { - Platform_Log1("Set VSync failed, error: %i", &result); - } - ctx_vsync_interval = enabled; + if (result != 0) {Platform_Log1("Set VSync failed, error: %i", &result); } } static void GLContext_GetAttribs(struct GraphicsMode mode, Int32* attribs) {