Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Warinig: works only with JOML
- public <T> void setUniform(String name, T data) {
- T t = data;
- if(t instanceof Float) {
- float tt;
- tt = (float)t;
- GL20.glUniform1f(getUniLoc(name),tt);
- } else if(t instanceof Integer) {
- int tt;
- tt = (Integer)t;
- GL20.glUniform1i(getUniLoc(name),tt);
- } else if(t instanceof Boolean) {
- Boolean tt;
- tt = (Boolean)t;
- GL20.glUniform1i(getUniLoc(name),tt ? 1 : 0);
- } else if(t instanceof Vector2f) {
- Vector2f tt;
- tt = (Vector2f)t;
- GL20.glUniform2f(getUniLoc(name),tt.x, tt.y);
- } else if(t instanceof Vector3f) {
- Vector3f tt;
- tt = (Vector3f)t;
- GL20.glUniform3f(getUniLoc(name),tt.x, tt.y, tt.z);
- } else if(t instanceof Matrix4f) {
- Matrix4f tt;
- tt = (Matrix4f)t;
- float[] arr = {
- tt.m00(),tt.m01(),tt.m02(),tt.m03(),
- tt.m10(),tt.m11(),tt.m12(),tt.m13(),
- tt.m20(),tt.m21(),tt.m22(),tt.m23(),
- tt.m30(),tt.m31(),tt.m32(),tt.m33()
- };
- FloatBuffer buff = MemoryUtil.memAllocFloat(arr.length);
- buff.put(arr);
- buff.flip();
- GL20.glUniformMatrix4fv(getUniLoc(name), true, buff);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement