Skip to content

Commit

Permalink
Simplified code and added better methods
Browse files Browse the repository at this point in the history
  • Loading branch information
fkeglevich committed Jan 19, 2019
1 parent c2f3084 commit b1940c9
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 37 deletions.
27 changes: 26 additions & 1 deletion app/src/main/java/com/fkeglevich/rawdumper/gl/Program.java
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,33 @@ public int getHandle()
return handle;
}

public void setUniformFloat(String name, float data)
{
GLES20.glUniform1f(getUniformHandle(name), data);
}

public void setUniformVec2(String name, float x, float y)
{
GLES20.glUniform2f(getUniformHandle(name), x, y);
}

public void setUniformVec2(String name, float[] data)
{
GLES20.glUniform2fv(getUniformHandle(name), 1, data, 0);
}

public void setUniformMat4(String name, float[] data)
{
setUniformMat4(name, data, false);
}

public void setUniformMat4(String name, float[] data, boolean transpose)
{
GLES20.glUniformMatrix4fv(getUniformHandle(name), 1, transpose, data, 0);
}

@SuppressWarnings("ConstantConditions")
public int getUniformHandle(String name)
protected int getUniformHandle(String name)
{
if (uniformCache.containsKey(name))
return uniformCache.get(name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,6 @@

public class PreviewProgram extends Program
{
private float[] surfaceMatrixCache = new float[16];
private float[] surfaceSizeCache = new float[2];
private float[] previewScaleCache = new float[2];
private float revealRadiusCache;
private final boolean hasRevealFeature;

public static PreviewProgram create(boolean hasRevealFeature) throws GLException
Expand All @@ -55,53 +51,25 @@ private PreviewProgram(int handle, boolean hasRevealFeature)

void setSurfaceMatrix(float[] surfaceMatrix)
{
if (Arrays.equals(surfaceMatrix, surfaceMatrixCache)) return;

int handle = getUniformHandle("surfaceMatrix");
if (handle != -1)
{
GLES20.glUniformMatrix4fv(handle, 1, false, surfaceMatrix, 0);
System.arraycopy(surfaceMatrix, 0, surfaceMatrixCache, 0, surfaceMatrix.length);
}
setUniformMat4("surfaceMatrix", surfaceMatrix);
}

void setSurfaceSize(float[] surfaceSize)
{
if (Arrays.equals(surfaceSize, surfaceSizeCache)) return;

int handle = getUniformHandle("surfaceSize");
if (handle != -1)
{
GLES20.glUniform2fv(handle, 1, surfaceSize, 0);
System.arraycopy(surfaceSize, 0, surfaceSizeCache, 0, surfaceSize.length);
}
setUniformVec2("surfaceSize", surfaceSize);
}

void setPreviewScale(float[] previewScale)
{
if (Arrays.equals(previewScale, previewScaleCache)) return;

int handle = getUniformHandle("previewScale");
if (handle != -1)
{
GLES20.glUniform2fv(handle, 1, previewScale, 0);
System.arraycopy(previewScale, 0, previewScaleCache, 0, previewScale.length);
}
setUniformVec2("previewScale", previewScale);
}

void setRevealRadius(float revealRadius)
{
if (!hasRevealFeature)
return; //silently fails

if (Float.compare(revealRadius, revealRadiusCache) == 0) return;

int handle = getUniformHandle("revealRadius");
if (handle != -1)
{
GLES20.glUniform1f(handle, revealRadius);
revealRadiusCache = revealRadius;
}
setUniformFloat("revealRadius", revealRadius);
}

void setupVertices(ByteBuffer vertexBuffer)
Expand Down

0 comments on commit b1940c9

Please sign in to comment.