// GENERATED FILE - DO NOT EDIT.
// Generated by generate_loader.py using data from wgl.xml.
//
// Copyright 2021 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// wgl_loader_autogen.h:
//   Simple WGL function loader.

#ifndef UTIL_WINDOWS_WGL_LOADER_AUTOGEN_H_
#define UTIL_WINDOWS_WGL_LOADER_AUTOGEN_H_

#include <GLES2/gl2.h>
#include <WGL/wgl.h>

// We add an underscore before each function name to ensure common names like "ChoosePixelFormat"
// and "SwapBuffers" don't conflict with our function pointers. We can't use a namespace because
// some functions conflict with preprocessor definitions.

#define _ChoosePixelFormat l__ChoosePixelFormat
#define _DescribePixelFormat l__DescribePixelFormat
#define _GetEnhMetaFilePixelFormat l__GetEnhMetaFilePixelFormat
#define _GetPixelFormat l__GetPixelFormat
#define _SetPixelFormat l__SetPixelFormat
#define _SwapBuffers l__SwapBuffers
#define _wglCopyContext l__wglCopyContext
#define _wglCreateContext l__wglCreateContext
#define _wglCreateLayerContext l__wglCreateLayerContext
#define _wglDeleteContext l__wglDeleteContext
#define _wglDescribeLayerPlane l__wglDescribeLayerPlane
#define _wglGetCurrentContext l__wglGetCurrentContext
#define _wglGetCurrentDC l__wglGetCurrentDC
#define _wglGetLayerPaletteEntries l__wglGetLayerPaletteEntries
#define _wglGetProcAddress l__wglGetProcAddress
#define _wglMakeCurrent l__wglMakeCurrent
#define _wglRealizeLayerPalette l__wglRealizeLayerPalette
#define _wglSetLayerPaletteEntries l__wglSetLayerPaletteEntries
#define _wglShareLists l__wglShareLists
#define _wglSwapLayerBuffers l__wglSwapLayerBuffers
#define _wglUseFontBitmaps l__wglUseFontBitmaps
#define _wglUseFontBitmapsA l__wglUseFontBitmapsA
#define _wglUseFontBitmapsW l__wglUseFontBitmapsW
#define _wglUseFontOutlines l__wglUseFontOutlines
#define _wglUseFontOutlinesA l__wglUseFontOutlinesA
#define _wglUseFontOutlinesW l__wglUseFontOutlinesW
#define _wglCreateContextAttribsARB l__wglCreateContextAttribsARB
#define _wglGetExtensionsStringARB l__wglGetExtensionsStringARB
#define _wglGetSwapIntervalEXT l__wglGetSwapIntervalEXT
#define _wglSwapIntervalEXT l__wglSwapIntervalEXT
extern PFNCHOOSEPIXELFORMATPROC l__ChoosePixelFormat;
extern PFNDESCRIBEPIXELFORMATPROC l__DescribePixelFormat;
extern PFNGETENHMETAFILEPIXELFORMATPROC l__GetEnhMetaFilePixelFormat;
extern PFNGETPIXELFORMATPROC l__GetPixelFormat;
extern PFNSETPIXELFORMATPROC l__SetPixelFormat;
extern PFNSWAPBUFFERSPROC l__SwapBuffers;
extern PFNWGLCOPYCONTEXTPROC l__wglCopyContext;
extern PFNWGLCREATECONTEXTPROC l__wglCreateContext;
extern PFNWGLCREATELAYERCONTEXTPROC l__wglCreateLayerContext;
extern PFNWGLDELETECONTEXTPROC l__wglDeleteContext;
extern PFNWGLDESCRIBELAYERPLANEPROC l__wglDescribeLayerPlane;
extern PFNWGLGETCURRENTCONTEXTPROC l__wglGetCurrentContext;
extern PFNWGLGETCURRENTDCPROC l__wglGetCurrentDC;
extern PFNWGLGETLAYERPALETTEENTRIESPROC l__wglGetLayerPaletteEntries;
extern PFNWGLGETPROCADDRESSPROC l__wglGetProcAddress;
extern PFNWGLMAKECURRENTPROC l__wglMakeCurrent;
extern PFNWGLREALIZELAYERPALETTEPROC l__wglRealizeLayerPalette;
extern PFNWGLSETLAYERPALETTEENTRIESPROC l__wglSetLayerPaletteEntries;
extern PFNWGLSHARELISTSPROC l__wglShareLists;
extern PFNWGLSWAPLAYERBUFFERSPROC l__wglSwapLayerBuffers;
extern PFNWGLUSEFONTBITMAPSPROC l__wglUseFontBitmaps;
extern PFNWGLUSEFONTBITMAPSAPROC l__wglUseFontBitmapsA;
extern PFNWGLUSEFONTBITMAPSWPROC l__wglUseFontBitmapsW;
extern PFNWGLUSEFONTOUTLINESPROC l__wglUseFontOutlines;
extern PFNWGLUSEFONTOUTLINESAPROC l__wglUseFontOutlinesA;
extern PFNWGLUSEFONTOUTLINESWPROC l__wglUseFontOutlinesW;
extern PFNWGLCREATECONTEXTATTRIBSARBPROC l__wglCreateContextAttribsARB;
extern PFNWGLGETEXTENSIONSSTRINGARBPROC l__wglGetExtensionsStringARB;
extern PFNWGLGETSWAPINTERVALEXTPROC l__wglGetSwapIntervalEXT;
extern PFNWGLSWAPINTERVALEXTPROC l__wglSwapIntervalEXT;

namespace angle
{
using GenericProc = void (*)();
using LoadProc    = GenericProc(KHRONOS_APIENTRY *)(const char *);
void LoadWGL(LoadProc loadProc);
}  // namespace angle

#endif  // UTIL_WINDOWS_WGL_LOADER_AUTOGEN_H_
