internal static TextureTarget GetTextureTarget(OpenGLTexture glTex, uint arrayLayer) { if ((glTex.Usage & TextureUsage.Cubemap) == TextureUsage.Cubemap) { switch (arrayLayer % 6) { case 0: return(TextureTarget.TextureCubeMapPositiveX); case 1: return(TextureTarget.TextureCubeMapNegativeX); case 2: return(TextureTarget.TextureCubeMapPositiveY); case 3: return(TextureTarget.TextureCubeMapNegativeY); case 4: return(TextureTarget.TextureCubeMapPositiveZ); case 5: return(TextureTarget.TextureCubeMapNegativeZ); } } return(glTex.TextureTarget); }
private TextureTarget GetTextureTarget(OpenGLTexture tex) { if ((tex.Usage & TextureUsage.Cubemap) == TextureUsage.Cubemap) { return(tex.ArrayLayers == 1 ? TextureTarget.TextureCubeMap : TextureTarget.TextureCubeMapArray); } else if (tex.Depth == 1) { return(tex.ArrayLayers == 1 ? TextureTarget.Texture2D : TextureTarget.Texture2DArray); } else { return(TextureTarget.Texture3D); } }