36 #include "../api_display.h"
37 #include "../../Core/System/sharedptr.h"
38 #include "../../Core/Text/string_types.h"
39 #include "../../Core/IOData/virtual_directory.h"
45 class CL_ProgramObject_Impl;
282 void throw_if_null()
const;
288 unsigned int get_handle()
const;
291 std::vector<CL_ShaderObject> get_shaders()
const;
297 int get_attribute_count()
const;
300 std::vector<CL_ProgramAttribute> get_attributes()
const;
303 int get_attribute_location(
const CL_StringRef &name)
const;
306 int get_uniform_count()
const;
309 std::vector<CL_ProgramUniform> get_uniforms()
const;
312 int get_uniform_location(
const CL_StringRef &name)
const;
330 void bind_attribute_location(
int index,
const CL_StringRef &name);
334 void bind_frag_data_location(
int color_number,
const CL_StringRef &name);
348 void set_uniform1i(
const CL_StringRef &name,
int value_a);
355 void set_uniform2i(
const CL_StringRef &name,
int value_a,
int value_b);
363 void set_uniform3i(
const CL_StringRef &name,
int value_a,
int value_b,
int value_c);
372 void set_uniform4i(
const CL_StringRef &name,
int value_a,
int value_b,
int value_c,
int value_d);
380 void set_uniformiv(
const CL_StringRef &name,
int size,
int count,
int *data);
461 void set_uniform1f(
const CL_StringRef &name,
float value_a);
468 void set_uniform2f(
const CL_StringRef &name,
float value_a,
float value_b);
476 void set_uniform3f(
const CL_StringRef &name,
float value_a,
float value_b,
float value_c);
485 void set_uniform4f(
const CL_StringRef &name,
float value_a,
float value_b,
float value_c,
float value_d);
493 void set_uniformfv(
const CL_StringRef &name,
int size,
int count,
float *data);
535 void set_uniform_matrix(
const CL_StringRef &name,
int size,
int count,
bool transpose,
float *data);
581 CL_SharedPtr<CL_ProgramObject_Impl> impl;