1 // 2 // Copyright 2014 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 7 // ImageIndex.cpp: Implementation for ImageIndex methods. 8 9 #include "libGLESv2/ImageIndex.h" 10 #include "libGLESv2/Texture.h" 11 #include "common/utilities.h" 12 13 namespace gl 14 { 15 16 ImageIndex::ImageIndex(const ImageIndex &other) 17 : type(other.type), 18 mipIndex(other.mipIndex), 19 layerIndex(other.layerIndex) 20 {} 21 22 ImageIndex &ImageIndex::operator=(const ImageIndex &other) 23 { 24 type = other.type; 25 mipIndex = other.mipIndex; 26 layerIndex = other.layerIndex; 27 return *this; 28 } 29 30 ImageIndex ImageIndex::Make2D(GLint mipIndex) 31 { 32 return ImageIndex(GL_TEXTURE_2D, mipIndex, ENTIRE_LEVEL); 33 } 34 35 ImageIndex ImageIndex::MakeCube(GLenum target, GLint mipIndex) 36 { 37 ASSERT(gl::IsCubemapTextureTarget(target)); 38 return ImageIndex(target, mipIndex, TextureCubeMap::targetToLayerIndex(target)); 39 } 40 41 ImageIndex ImageIndex::Make2DArray(GLint mipIndex, GLint layerIndex) 42 { 43 return ImageIndex(GL_TEXTURE_2D_ARRAY, mipIndex, layerIndex); 44 } 45 46 ImageIndex ImageIndex::Make3D(GLint mipIndex, GLint layerIndex) 47 { 48 return ImageIndex(GL_TEXTURE_3D, mipIndex, layerIndex); 49 } 50 51 ImageIndex::ImageIndex(GLenum typeIn, GLint mipIndexIn, GLint layerIndexIn) 52 : type(typeIn), 53 mipIndex(mipIndexIn), 54 layerIndex(layerIndexIn) 55 {} 56 57 } 58