{-# LANGUAGE PatternSynonyms #-}
--------------------------------------------------------------------------------
-- |
-- Module      :  Graphics.GL.NV.MeshShader
-- Copyright   :  (c) Sven Panne 2019
-- License     :  BSD3
--
-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
-- Stability   :  stable
-- Portability :  portable
--
--------------------------------------------------------------------------------

module Graphics.GL.NV.MeshShader (
  -- * Extension Support
  glGetNVMeshShader,
  gl_NV_mesh_shader,
  -- * Enums
  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV,
  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV,
  pattern GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV,
  pattern GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV,
  pattern GL_MAX_DRAW_MESH_TASKS_COUNT_NV,
  pattern GL_MAX_MESH_ATOMIC_COUNTERS_NV,
  pattern GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV,
  pattern GL_MAX_MESH_IMAGE_UNIFORMS_NV,
  pattern GL_MAX_MESH_OUTPUT_PRIMITIVES_NV,
  pattern GL_MAX_MESH_OUTPUT_VERTICES_NV,
  pattern GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV,
  pattern GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV,
  pattern GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV,
  pattern GL_MAX_MESH_UNIFORM_BLOCKS_NV,
  pattern GL_MAX_MESH_UNIFORM_COMPONENTS_NV,
  pattern GL_MAX_MESH_VIEWS_NV,
  pattern GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV,
  pattern GL_MAX_MESH_WORK_GROUP_SIZE_NV,
  pattern GL_MAX_TASK_ATOMIC_COUNTERS_NV,
  pattern GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV,
  pattern GL_MAX_TASK_IMAGE_UNIFORMS_NV,
  pattern GL_MAX_TASK_OUTPUT_COUNT_NV,
  pattern GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV,
  pattern GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV,
  pattern GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV,
  pattern GL_MAX_TASK_UNIFORM_BLOCKS_NV,
  pattern GL_MAX_TASK_UNIFORM_COMPONENTS_NV,
  pattern GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV,
  pattern GL_MAX_TASK_WORK_GROUP_SIZE_NV,
  pattern GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV,
  pattern GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV,
  pattern GL_MESH_OUTPUT_TYPE_NV,
  pattern GL_MESH_PRIMITIVES_OUT_NV,
  pattern GL_MESH_SHADER_BIT_NV,
  pattern GL_MESH_SHADER_NV,
  pattern GL_MESH_SUBROUTINE_NV,
  pattern GL_MESH_SUBROUTINE_UNIFORM_NV,
  pattern GL_MESH_VERTICES_OUT_NV,
  pattern GL_MESH_WORK_GROUP_SIZE_NV,
  pattern GL_REFERENCED_BY_MESH_SHADER_NV,
  pattern GL_REFERENCED_BY_TASK_SHADER_NV,
  pattern GL_TASK_SHADER_BIT_NV,
  pattern GL_TASK_SHADER_NV,
  pattern GL_TASK_SUBROUTINE_NV,
  pattern GL_TASK_SUBROUTINE_UNIFORM_NV,
  pattern GL_TASK_WORK_GROUP_SIZE_NV,
  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV,
  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV,
  -- * Functions
  glDrawMeshTasksIndirectNV,
  glDrawMeshTasksNV,
  glMultiDrawMeshTasksIndirectCountNV,
  glMultiDrawMeshTasksIndirectNV
) where

import Graphics.GL.ExtensionPredicates
import Graphics.GL.Tokens
import Graphics.GL.Functions