20 #include "../bitmap/abstract_bitmap.h" 
   21 #include "../utils/chunkfile.h" 
   22 #include "../basic_types.h" 
   26 #define BEATMUP_SHADER_CODE(...) #__VA_ARGS__ 
   98                 compile(gpu, source.c_str(), extensions);
 
  115                 compile(gpu, source.c_str(), extensions);
 
  128             void set(
unsigned int value);
 
  151 #ifndef BEATMUP_OPENGLVERSION_GLES20 
  191             void setInteger(
const std::string& 
name, 
const int value, 
bool safe = 
false);
 
  200             void setFloat(
const std::string& 
name, 
const float value, 
bool safe = 
false);
 
  203             void setVector3(
const std::string& 
name, 
const float x, 
const float y, 
const float z);
 
  204             void setVector4(
const std::string& 
name, 
const float x, 
const float y, 
const float z, 
const float w);
 
  214             void setFloatArray(
const std::string& 
name, 
const float* values, 
const int length);
 
  216             void setVec4Array(
const std::string& 
name, 
const float* xyzw, 
const int length);
 
  221 #ifndef BEATMUP_OPENGLVERSION_GLES20 
  245             void blend(
bool onScreen);
 
2x3 affine mapping containing a 2x2 matrix and a 2D point
 
Simply a piece of binary data of a specific size.
 
std::map< std::string, handle_t > uniformsCache
 
void setUnsignedInteger(const std::string &name, const unsigned int value, bool safe=false)
 
void setMatrix2(const std::string &name, const Matrix2 &mat)
 
void assertLinked() const
 
handle_t getAttribLocation(const std::string &name)
Retrieves attribute location by its name.
 
void setVec2Array(const std::string &name, const float *xy, const int length)
 
handle_t getHandle() const
 
handle_t findUniformLocation(const char *name)
Retrieves uniform variable location by its name.
 
void bindSampler(GraphicPipeline &gpu, GL::TextureHandler &image, const char *uniformId, TextureParam param)
 
void bindAtomicCounter(GraphicPipeline &gpu, AtomicCounter &counter, int unit)
 
void setInteger(const std::string &name, const int value, bool safe=false)
Assigns a value to a specific integer variable in the program.
 
Chunk * getBinary() const
 
void enable(const GraphicPipeline &gpu)
 
void loadBinary(const Chunk &binary)
 
void setIntegerArray(const std::string &name, const int *values, const int length)
 
void setFloatArray(const std::string &name, const float *values, const int length)
 
void setVec4Array(const std::string &name, const float *xyzw, const int length)
 
handle_t getUniformLocation(const std::string &name)
Retrieves uniform variable location by its name.
 
void setVector3(const std::string &name, const float x, const float y, const float z)
 
void setFloat(const std::string &name, const float value, bool safe=false)
Assigns a value to a specific floating point variable in the program.
 
void setVector4(const std::string &name, const float x, const float y, const float z, const float w)
 
std::map< std::string, handle_t > attribsCache
 
handle_t findAttribLocation(const char *name)
Retrieves attribute location by its name.
 
void bindImage(GraphicPipeline &gpu, GL::TextureHandler &image, const char *uniformId, bool read, bool write)
 
AbstractProgram(const AbstractProgram &)=delete
disabling copying constructor
 
void setMatrix3(const std::string &name, const Matrix2 &mat, const Point &pos)
 
void setVector2(const std::string &name, const float x, const float y)
 
void set(unsigned int value)
 
AtomicCounter(const GraphicPipeline &gpu)
 
static const char * DIALECT_SAMPLER_DECL_TYPE
glsl type name to declare a texture in Beatmup dialect
 
FragmentShader(const GraphicPipeline &gpu)
 
static const char * DIALECT_TEXTURE_SAMPLING_FUNC
glsl function name to sample a texture in Beatmup dialect
 
void compile(const GraphicPipeline &gpu, const std::string &source, Extensions extensions=Extensions::NONE)
 
FragmentShader(const GraphicPipeline &gpu, const std::string &source, Extensions extensions=Extensions::NONE)
 
Program(const GraphicPipeline &gpu)
 
void link(const VertexShader &, const FragmentShader &)
 
A wrapper for a GPU resource.
 
GLSL program to render images Makes use of default vertex attributes to pass the texture coordinates ...
 
void link(const GraphicPipeline &gpu, const FragmentShader &)
 
RenderingProgram(const GraphicPipeline &gpu, const FragmentShader &)
 
handle_t getHandle() const
 
Shader(const Shader &)=delete
disabling copying constructor
 
void compile(const GraphicPipeline &gpu, const char *source)
 
VertexShader(const GraphicPipeline &gpu, const std::string &source, Extensions extensions=Extensions::NONE)
 
VertexShader(const GraphicPipeline &gpu)
 
void compile(const GraphicPipeline &gpu, const std::string &source, Extensions extensions=Extensions::NONE)
 
Internal low-level GPU control API.
 
void write(Bitmap &bitmap, Args &&... args)
Calls a Func< WriterClass >::process(access, params) that writes to a bitmap of any kind,...
 
void read(Bitmap &bitmap, Args &&... args)
Calls a Func< ReaderClass >::process(access, params), where.
 
Extensions operator-=(Extensions &set, Extensions entry)
 
unsigned int handle_t
A reference to a GPU resource.
 
Extensions
Supported OpenGL estensions.
 
@ BEATMUP_DIALECT
pseudo-extension enabling Beatmup GLSL dialect
 
@ EXTERNAL_TEXTURE
GL_OES_EGL_image_external_essl3 if available or GL_OES_EGL_image_external.
 
Extensions operator+(Extensions lhs, Extensions rhs)
 
TextureParam
Parameters of binding a texture to a texture unit on GPU.
 
return(jlong) new Beatmup jlong jstring name
 
jlong jstring jint jint jint z
 
jobject jlong jint jint y
 
jlong jstring jint jint jint jint w
 
Beatmup::AffineMapping & mapping