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