chromium/third_party/skia/include/gpu/ganesh/gl/GrGLTypes.h


/*
 * Copyright 2015 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef GrGLTypes_DEFINED
#define GrGLTypes_DEFINED

#include "include/core/SkRefCnt.h"
#include "include/gpu/GpuTypes.h"
#include "include/gpu/ganesh/gl/GrGLConfig.h"

/**
 * Classifies GL contexts by which standard they implement (currently as OpenGL vs. OpenGL ES).
 */
enum GrGLStandard {};
static const int kGrGLStandardCnt =;

// The following allow certain interfaces to be turned off at compile time
// (for example, to lower code size).
#if SK_ASSUME_GL_ES
    #define GR_IS_GR_GL
    #define GR_IS_GR_GL_ES
    #define GR_IS_GR_WEBGL
    #define SK_DISABLE_GL_INTERFACE
    #define SK_DISABLE_WEBGL_INTERFACE
#elif SK_ASSUME_GL
    #define GR_IS_GR_GL
    #define GR_IS_GR_GL_ES
    #define GR_IS_GR_WEBGL
    #define SK_DISABLE_GL_ES_INTERFACE
    #define SK_DISABLE_WEBGL_INTERFACE
#elif SK_ASSUME_WEBGL
    #define GR_IS_GR_GL
    #define GR_IS_GR_GL_ES
    #define GR_IS_GR_WEBGL
    #define SK_DISABLE_GL_ES_INTERFACE
    #define SK_DISABLE_GL_INTERFACE
#else
    #define GR_IS_GR_GL(standard)
    #define GR_IS_GR_GL_ES(standard)
    #define GR_IS_GR_WEBGL(standard)
#endif

///////////////////////////////////////////////////////////////////////////////

/**
 * The supported GL formats represented as an enum. Actual support by GrContext depends on GL
 * context version and extensions.
 */
enum class GrGLFormat {};

///////////////////////////////////////////////////////////////////////////////
/**
 * Declares typedefs for all the GL functions used in GrGLInterface
 */

GrGLenum;
GrGLboolean;
GrGLbitfield;
GrGLbyte;
GrGLchar;
GrGLshort;
GrGLint;
GrGLsizei;
GrGLint64;
GrGLubyte;
GrGLushort;
GrGLuint;
GrGLuint64;
GrGLhalf;
GrGLfloat;
GrGLclampf;
GrGLdouble;
GrGLclampd;
GrGLvoid;
#ifdef _WIN64
typedef signed long long int GrGLintptr;
typedef signed long long int GrGLsizeiptr;
#else
GrGLintptr;
GrGLsizeiptr;
#endif
GrGLeglImage;
GrGLsync;

struct GrGLDrawArraysIndirectCommand {};

// static_asserts must have messages in this file because its included in C++14 client code.
static_assert;

struct GrGLDrawElementsIndirectCommand {};

static_assert;

/**
 * KHR_debug
 */
GRGLDEBUGPROC;

/**
 * EGL types.
 */
GrEGLImage;
GrEGLDisplay;
GrEGLContext;
GrEGLClientBuffer;
GrEGLenum;
GrEGLint;
GrEGLBoolean;

///////////////////////////////////////////////////////////////////////////////
/**
 * Types for interacting with GL resources created externally to Skia. GrBackendObjects for GL
 * textures are really const GrGLTexture*. The fFormat here should be a sized, internal format
 * for the texture. We will try to use the sized format if the GL Context supports it, otherwise
 * we will internally fall back to using the base internal formats.
 */
struct GrGLTextureInfo {};

struct GrGLFramebufferInfo {};

struct GrGLSurfaceInfo {};

#endif