diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 5adbf351..d7ac0954 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -51,10 +51,13 @@ target_link_libraries(sharing ${STATIC_DEPS}) add_executable(tearing WIN32 MACOSX_BUNDLE tearing.c) target_link_libraries(tearing ${STATIC_DEPS}) +add_executable(title WIN32 MACOSX_BUNDLE title.c) +target_link_libraries(title ${STATIC_DEPS}) + add_executable(windows WIN32 MACOSX_BUNDLE windows.c) target_link_libraries(windows ${STATIC_DEPS}) -set(WINDOWS_BINARIES accuracy sharing tearing windows) +set(WINDOWS_BINARIES accuracy sharing tearing title windows) set(CONSOLE_BINARIES defaults events fsaa fsfocus gamma glfwinfo iconify joysticks listmodes peter reopen) diff --git a/tests/title.c b/tests/title.c new file mode 100644 index 00000000..7b342d94 --- /dev/null +++ b/tests/title.c @@ -0,0 +1,70 @@ +//======================================================================== +// UTF-8 window title test +// Copyright (c) Camilla Berglund +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would +// be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, and must not +// be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source +// distribution. +// +//======================================================================== +// +// This test sets a UTF-8 window title +// +//======================================================================== + +#include + +#include +#include + +static void window_size_callback(GLFWwindow window, int width, int height) +{ + glViewport(0, 0, width, height); +} + +int main(void) +{ + GLFWwindow window; + + if (!glfwInit()) + { + fprintf(stderr, "Failed to initialize GLFW: %s\n", glfwErrorString(glfwGetError())); + exit(EXIT_FAILURE); + } + + window = glfwOpenWindow(0, 0, GLFW_WINDOWED, "English 日本語 русский язык 官話", NULL); + if (!window) + { + fprintf(stderr, "Failed to open GLFW window: %s\n", glfwErrorString(glfwGetError())); + exit(EXIT_FAILURE); + } + + glfwSwapInterval(1); + + glfwSetWindowSizeCallback(window_size_callback); + + while (glfwIsWindow(window) == GL_TRUE) + { + glClear(GL_COLOR_BUFFER_BIT); + glfwSwapBuffers(); + glfwWaitEvents(); + } + + exit(EXIT_SUCCESS); +} +