4343import com .jme3 .texture .Texture3D ;
4444import com .jme3 .texture .TextureArray ;
4545import com .jme3 .texture .TextureCubeMap ;
46+ import com .jme3 .texture .TextureImage ;
4647
4748public enum VarType {
48-
49+
4950 Float ("float" , float .class , Float .class ),
5051 Vector2 ("vec2" , Vector2f .class ),
5152 Vector3 ("vec3" , Vector3f .class ),
@@ -56,7 +57,8 @@ public enum VarType {
5657 Vector2Array (true , false , "vec2" , Vector2f [].class ),
5758 Vector3Array (true , false , "vec3" , Vector3f [].class ),
5859 Vector4Array (true , false , "vec4" , Vector4f [].class ),
59-
60+
61+ Int ("int" , int .class , Integer .class ),
6062 Boolean ("bool" , Boolean .class , boolean .class ),
6163
6264 Matrix3 (true , false , "mat3" , Matrix3f .class ),
@@ -70,12 +72,16 @@ public enum VarType {
7072 Texture3D (false , true , "sampler3D" , Texture3D .class , Texture .class ),
7173 TextureArray (false , true , "sampler2DArray|sampler2DArrayShadow" , TextureArray .class , Texture .class ),
7274 TextureCubeMap (false , true , "samplerCube" , TextureCubeMap .class , Texture .class ),
73- Int ("int" , int .class , Integer .class ),
75+
76+ Image2D (false , false , true , "image2D" , TextureImage .class ),
77+ Image3D (false , false , true , "image3D" , TextureImage .class ),
78+
7479 UniformBufferObject (false , false , "custom" , BufferObject .class ),
7580 ShaderStorageBufferObject (false , false , "custom" , BufferObject .class );
7681
7782 private boolean usesMultiData = false ;
7883 private boolean textureType = false ;
84+ private boolean imageType = false ;
7985 private final String glslType ;
8086 private Class <?>[] javaTypes ;
8187
@@ -98,6 +104,11 @@ public enum VarType {
98104 this .javaTypes = new Class <?>[0 ];
99105 }
100106 }
107+
108+ VarType (boolean multiData , boolean textureType , boolean imageType , String glslType , Class <?>... javaTypes ) {
109+ this (multiData , textureType , glslType , javaTypes );
110+ this .imageType = imageType ;
111+ }
101112
102113 /**
103114 * Check if the passed object is of a type mapped to this VarType
@@ -126,6 +137,10 @@ public Class<?>[] getJavaType() {
126137 public boolean isTextureType () {
127138 return textureType ;
128139 }
140+
141+ public boolean isImageType () {
142+ return imageType ;
143+ }
129144
130145 public boolean usesMultiData () {
131146 return usesMultiData ;
0 commit comments