diff --git a/test/.gitignore b/test/.gitignore index a33ea93..f771a27 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -15,5 +15,7 @@ headerguards khronos_typedefs miscdefines wgl_core_and_exts +wgl_usefontbitmaps +wgl_usefontbitmaps_unicode *.log *.trs diff --git a/test/Makefile.am b/test/Makefile.am index 972a5db..e9c4676 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -109,6 +109,8 @@ endif if BUILD_WGL WGL_TESTS = \ wgl_core_and_exts$(EXEEXT) \ + wgl_usefontbitmaps$(EXEEXT) \ + wgl_usefontbitmaps_unicode$(EXEEXT) \ $() WGL_LIBS = libwgl_common.la @@ -164,3 +166,8 @@ khronos_typedefs_SOURCES = \ $() wgl_core_and_exts_LDADD = $(EPOXY) libwgl_common.la -lgdi32 + +wgl_usefontbitmaps_LDADD = $(EPOXY) libwgl_common.la -lgdi32 +wgl_usefontbitmaps_unicode_SOURCES = wgl_usefontbitmaps.c +wgl_usefontbitmaps_unicode_LDADD = $(EPOXY) libwgl_common.la -lgdi32 +wgl_usefontbitmaps_unicode_CPPFLAGS = $(AM_CPPFLAGS) -DUNICODE diff --git a/test/wgl_usefontbitmaps.c b/test/wgl_usefontbitmaps.c new file mode 100644 index 0000000..3287b65 --- /dev/null +++ b/test/wgl_usefontbitmaps.c @@ -0,0 +1,75 @@ +/* + * Copyright © 2013 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include +#include + +#include "wgl_common.h" +#include + +static int +test_function(HDC hdc) +{ + bool pass = true; + HGLRC ctx; + GLuint dlist[2] = {100, 101}; + const char *string = "some string"; + + ctx = wglCreateContext(hdc); + if (!ctx) { + fprintf(stderr, "Failed to create wgl context\n"); + return 1; + } + if (!wglMakeCurrent(hdc, ctx)) { + fprintf(stderr, "Failed to make context current\n"); + return 1; + } + + /* First, use the #ifdeffed variant of the function */ + wglUseFontBitmaps(hdc, 0, 255, dlist[1]); + glListBase(dlist[1]); + glCallLists(strlen(string), GL_UNSIGNED_BYTE, string); + + /* Now, use the specific version, manually. */ +#ifdef UNICODE + wglUseFontBitmapsW(hdc, 0, 255, dlist[2]); +#else + wglUseFontBitmapsA(hdc, 0, 255, dlist[2]); +#endif + glListBase(dlist[2]); + glCallLists(strlen(string), GL_UNSIGNED_BYTE, string); + + wglMakeCurrent(NULL, NULL); + wglDeleteContext(ctx); + + return !pass; +} + +int +main(int argc, char **argv) +{ + make_window_and_test(test_function); + + /* UNREACHED */ + return 1; +}