Revision 2bd3d0fb
Added by Leszek Koltunski about 5 years ago
| src/main/java/org/distorted/library/main/DistortedLibrary.java | ||
|---|---|---|
| 221 | 221 |
|
| 222 | 222 |
private static ExceptionListener mListener; |
| 223 | 223 |
private static Resources mResources; |
| 224 |
private static int mMaxTextureSize; |
|
| 224 | 225 |
|
| 225 | 226 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 226 | 227 |
// private: hide this from Javadoc |
| ... | ... | |
| 994 | 995 |
mGLSL = (major==3 && minor==0) ? 300 : 310; |
| 995 | 996 |
} |
| 996 | 997 |
|
| 998 |
int[] maxTextureSize = new int[1]; |
|
| 999 |
GLES30.glGetIntegerv(GLES30.GL_MAX_TEXTURE_SIZE, maxTextureSize, 0); |
|
| 1000 |
mMaxTextureSize = maxTextureSize[0]; |
|
| 1001 |
|
|
| 997 | 1002 |
android.util.Log.e("DISTORTED", "Using OpenGL ES "+major+"."+minor);
|
| 998 | 1003 |
mGLSL_VERSION = "#version "+mGLSL+" es\n"; |
| 999 | 1004 |
|
| ... | ... | |
| 1086 | 1091 |
mBlitProgram = null; |
| 1087 | 1092 |
} |
| 1088 | 1093 |
|
| 1094 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 1095 |
/** |
|
| 1096 |
* Return the maximum size of the texture supported by the driver. |
|
| 1097 |
*/ |
|
| 1098 |
public static int getMaxTextureSize() |
|
| 1099 |
{
|
|
| 1100 |
return mMaxTextureSize; |
|
| 1101 |
} |
|
| 1102 |
|
|
| 1089 | 1103 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 1090 | 1104 |
/** |
| 1091 | 1105 |
* Returns the maximum number of effects of a given type that can be simultaneously applied to a |
| src/main/java/org/distorted/library/main/DistortedTexture.java | ||
|---|---|---|
| 135 | 135 |
* to GLSurfaceView.onSurfaceCreated) because only after this point can the Library upload it to the GPU! |
| 136 | 136 |
* |
| 137 | 137 |
* @param bmp The android.graphics.Bitmap object to apply effects to and display. |
| 138 |
* @return true if successful, false if texture too large. |
|
| 138 | 139 |
*/ |
| 139 |
public void setTexture(Bitmap bmp)
|
|
| 140 |
public boolean setTexture(Bitmap bmp)
|
|
| 140 | 141 |
{
|
| 141 |
mBmp= bmp; |
|
| 142 |
markForCreation(); |
|
| 142 |
int width = bmp.getWidth(); |
|
| 143 |
int height= bmp.getHeight(); |
|
| 144 |
int max = DistortedLibrary.getMaxTextureSize(); |
|
| 145 |
|
|
| 146 |
if( width>max || height>max ) |
|
| 147 |
{
|
|
| 148 |
android.util.Log.e("texture","error, trying to upload too large texture of size "+width+" x "+height+". Max is "+max);
|
|
| 149 |
return false; |
|
| 150 |
} |
|
| 151 |
else |
|
| 152 |
{
|
|
| 153 |
mBmp= bmp; |
|
| 154 |
markForCreation(); |
|
| 155 |
return true; |
|
| 156 |
} |
|
| 143 | 157 |
} |
| 144 | 158 |
|
| 145 | 159 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
Detect if the texture we are trying to upload is too large and return an error.