1*8975f5c5SAndroid Build Coastguard Worker //
2*8975f5c5SAndroid Build Coastguard Worker // Copyright 2016 The ANGLE Project Authors. All rights reserved.
3*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
4*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file.
5*8975f5c5SAndroid Build Coastguard Worker //
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Worker // TextureImpl.cpp: Defines the abstract rx::TextureImpl classes.
8*8975f5c5SAndroid Build Coastguard Worker
9*8975f5c5SAndroid Build Coastguard Worker #include "libANGLE/renderer/TextureImpl.h"
10*8975f5c5SAndroid Build Coastguard Worker
11*8975f5c5SAndroid Build Coastguard Worker namespace rx
12*8975f5c5SAndroid Build Coastguard Worker {
TextureImpl(const gl::TextureState & state)13*8975f5c5SAndroid Build Coastguard Worker TextureImpl::TextureImpl(const gl::TextureState &state) : mState(state) {}
14*8975f5c5SAndroid Build Coastguard Worker
~TextureImpl()15*8975f5c5SAndroid Build Coastguard Worker TextureImpl::~TextureImpl() {}
16*8975f5c5SAndroid Build Coastguard Worker
onDestroy(const gl::Context * context)17*8975f5c5SAndroid Build Coastguard Worker void TextureImpl::onDestroy(const gl::Context *context) {}
18*8975f5c5SAndroid Build Coastguard Worker
copyTexture(const gl::Context * context,const gl::ImageIndex & index,GLenum internalFormat,GLenum type,GLint sourceLevel,bool unpackFlipY,bool unpackPremultiplyAlpha,bool unpackUnmultiplyAlpha,const gl::Texture * source)19*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::copyTexture(const gl::Context *context,
20*8975f5c5SAndroid Build Coastguard Worker const gl::ImageIndex &index,
21*8975f5c5SAndroid Build Coastguard Worker GLenum internalFormat,
22*8975f5c5SAndroid Build Coastguard Worker GLenum type,
23*8975f5c5SAndroid Build Coastguard Worker GLint sourceLevel,
24*8975f5c5SAndroid Build Coastguard Worker bool unpackFlipY,
25*8975f5c5SAndroid Build Coastguard Worker bool unpackPremultiplyAlpha,
26*8975f5c5SAndroid Build Coastguard Worker bool unpackUnmultiplyAlpha,
27*8975f5c5SAndroid Build Coastguard Worker const gl::Texture *source)
28*8975f5c5SAndroid Build Coastguard Worker {
29*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
30*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
31*8975f5c5SAndroid Build Coastguard Worker }
32*8975f5c5SAndroid Build Coastguard Worker
copySubTexture(const gl::Context * context,const gl::ImageIndex & index,const gl::Offset & destOffset,GLint sourceLevel,const gl::Box & sourceBox,bool unpackFlipY,bool unpackPremultiplyAlpha,bool unpackUnmultiplyAlpha,const gl::Texture * source)33*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::copySubTexture(const gl::Context *context,
34*8975f5c5SAndroid Build Coastguard Worker const gl::ImageIndex &index,
35*8975f5c5SAndroid Build Coastguard Worker const gl::Offset &destOffset,
36*8975f5c5SAndroid Build Coastguard Worker GLint sourceLevel,
37*8975f5c5SAndroid Build Coastguard Worker const gl::Box &sourceBox,
38*8975f5c5SAndroid Build Coastguard Worker bool unpackFlipY,
39*8975f5c5SAndroid Build Coastguard Worker bool unpackPremultiplyAlpha,
40*8975f5c5SAndroid Build Coastguard Worker bool unpackUnmultiplyAlpha,
41*8975f5c5SAndroid Build Coastguard Worker const gl::Texture *source)
42*8975f5c5SAndroid Build Coastguard Worker {
43*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
44*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
45*8975f5c5SAndroid Build Coastguard Worker }
46*8975f5c5SAndroid Build Coastguard Worker
copyRenderbufferSubData(const gl::Context * context,const gl::Renderbuffer * srcBuffer,GLint srcLevel,GLint srcX,GLint srcY,GLint srcZ,GLint dstLevel,GLint dstX,GLint dstY,GLint dstZ,GLsizei srcWidth,GLsizei srcHeight,GLsizei srcDepth)47*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::copyRenderbufferSubData(const gl::Context *context,
48*8975f5c5SAndroid Build Coastguard Worker const gl::Renderbuffer *srcBuffer,
49*8975f5c5SAndroid Build Coastguard Worker GLint srcLevel,
50*8975f5c5SAndroid Build Coastguard Worker GLint srcX,
51*8975f5c5SAndroid Build Coastguard Worker GLint srcY,
52*8975f5c5SAndroid Build Coastguard Worker GLint srcZ,
53*8975f5c5SAndroid Build Coastguard Worker GLint dstLevel,
54*8975f5c5SAndroid Build Coastguard Worker GLint dstX,
55*8975f5c5SAndroid Build Coastguard Worker GLint dstY,
56*8975f5c5SAndroid Build Coastguard Worker GLint dstZ,
57*8975f5c5SAndroid Build Coastguard Worker GLsizei srcWidth,
58*8975f5c5SAndroid Build Coastguard Worker GLsizei srcHeight,
59*8975f5c5SAndroid Build Coastguard Worker GLsizei srcDepth)
60*8975f5c5SAndroid Build Coastguard Worker {
61*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
62*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
63*8975f5c5SAndroid Build Coastguard Worker }
64*8975f5c5SAndroid Build Coastguard Worker
copyTextureSubData(const gl::Context * context,const gl::Texture * srcTexture,GLint srcLevel,GLint srcX,GLint srcY,GLint srcZ,GLint dstLevel,GLint dstX,GLint dstY,GLint dstZ,GLsizei srcWidth,GLsizei srcHeight,GLsizei srcDepth)65*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::copyTextureSubData(const gl::Context *context,
66*8975f5c5SAndroid Build Coastguard Worker const gl::Texture *srcTexture,
67*8975f5c5SAndroid Build Coastguard Worker GLint srcLevel,
68*8975f5c5SAndroid Build Coastguard Worker GLint srcX,
69*8975f5c5SAndroid Build Coastguard Worker GLint srcY,
70*8975f5c5SAndroid Build Coastguard Worker GLint srcZ,
71*8975f5c5SAndroid Build Coastguard Worker GLint dstLevel,
72*8975f5c5SAndroid Build Coastguard Worker GLint dstX,
73*8975f5c5SAndroid Build Coastguard Worker GLint dstY,
74*8975f5c5SAndroid Build Coastguard Worker GLint dstZ,
75*8975f5c5SAndroid Build Coastguard Worker GLsizei srcWidth,
76*8975f5c5SAndroid Build Coastguard Worker GLsizei srcHeight,
77*8975f5c5SAndroid Build Coastguard Worker GLsizei srcDepth)
78*8975f5c5SAndroid Build Coastguard Worker {
79*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
80*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
81*8975f5c5SAndroid Build Coastguard Worker }
82*8975f5c5SAndroid Build Coastguard Worker
copyCompressedTexture(const gl::Context * context,const gl::Texture * source)83*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::copyCompressedTexture(const gl::Context *context,
84*8975f5c5SAndroid Build Coastguard Worker const gl::Texture *source)
85*8975f5c5SAndroid Build Coastguard Worker {
86*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
87*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
88*8975f5c5SAndroid Build Coastguard Worker }
89*8975f5c5SAndroid Build Coastguard Worker
copy3DTexture(const gl::Context * context,gl::TextureTarget target,GLenum internalFormat,GLenum type,GLint sourceLevel,GLint destLevel,bool unpackFlipY,bool unpackPremultiplyAlpha,bool unpackUnmultiplyAlpha,const gl::Texture * source)90*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::copy3DTexture(const gl::Context *context,
91*8975f5c5SAndroid Build Coastguard Worker gl::TextureTarget target,
92*8975f5c5SAndroid Build Coastguard Worker GLenum internalFormat,
93*8975f5c5SAndroid Build Coastguard Worker GLenum type,
94*8975f5c5SAndroid Build Coastguard Worker GLint sourceLevel,
95*8975f5c5SAndroid Build Coastguard Worker GLint destLevel,
96*8975f5c5SAndroid Build Coastguard Worker bool unpackFlipY,
97*8975f5c5SAndroid Build Coastguard Worker bool unpackPremultiplyAlpha,
98*8975f5c5SAndroid Build Coastguard Worker bool unpackUnmultiplyAlpha,
99*8975f5c5SAndroid Build Coastguard Worker const gl::Texture *source)
100*8975f5c5SAndroid Build Coastguard Worker {
101*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
102*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
103*8975f5c5SAndroid Build Coastguard Worker }
104*8975f5c5SAndroid Build Coastguard Worker
copy3DSubTexture(const gl::Context * context,const gl::TextureTarget target,const gl::Offset & destOffset,GLint sourceLevel,GLint destLevel,const gl::Box & srcBox,bool unpackFlipY,bool unpackPremultiplyAlpha,bool unpackUnmultiplyAlpha,const gl::Texture * source)105*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::copy3DSubTexture(const gl::Context *context,
106*8975f5c5SAndroid Build Coastguard Worker const gl::TextureTarget target,
107*8975f5c5SAndroid Build Coastguard Worker const gl::Offset &destOffset,
108*8975f5c5SAndroid Build Coastguard Worker GLint sourceLevel,
109*8975f5c5SAndroid Build Coastguard Worker GLint destLevel,
110*8975f5c5SAndroid Build Coastguard Worker const gl::Box &srcBox,
111*8975f5c5SAndroid Build Coastguard Worker bool unpackFlipY,
112*8975f5c5SAndroid Build Coastguard Worker bool unpackPremultiplyAlpha,
113*8975f5c5SAndroid Build Coastguard Worker bool unpackUnmultiplyAlpha,
114*8975f5c5SAndroid Build Coastguard Worker const gl::Texture *source)
115*8975f5c5SAndroid Build Coastguard Worker {
116*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
117*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
118*8975f5c5SAndroid Build Coastguard Worker }
119*8975f5c5SAndroid Build Coastguard Worker
setImageExternal(const gl::Context * context,const gl::ImageIndex & index,GLenum internalFormat,const gl::Extents & size,GLenum format,GLenum type)120*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::setImageExternal(const gl::Context *context,
121*8975f5c5SAndroid Build Coastguard Worker const gl::ImageIndex &index,
122*8975f5c5SAndroid Build Coastguard Worker GLenum internalFormat,
123*8975f5c5SAndroid Build Coastguard Worker const gl::Extents &size,
124*8975f5c5SAndroid Build Coastguard Worker GLenum format,
125*8975f5c5SAndroid Build Coastguard Worker GLenum type)
126*8975f5c5SAndroid Build Coastguard Worker {
127*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
128*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
129*8975f5c5SAndroid Build Coastguard Worker }
130*8975f5c5SAndroid Build Coastguard Worker
setBuffer(const gl::Context * context,GLenum internalFormat)131*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::setBuffer(const gl::Context *context, GLenum internalFormat)
132*8975f5c5SAndroid Build Coastguard Worker {
133*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
134*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
135*8975f5c5SAndroid Build Coastguard Worker }
136*8975f5c5SAndroid Build Coastguard Worker
clearImage(const gl::Context * context,GLint level,GLenum format,GLenum type,const uint8_t * data)137*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::clearImage(const gl::Context *context,
138*8975f5c5SAndroid Build Coastguard Worker GLint level,
139*8975f5c5SAndroid Build Coastguard Worker GLenum format,
140*8975f5c5SAndroid Build Coastguard Worker GLenum type,
141*8975f5c5SAndroid Build Coastguard Worker const uint8_t *data)
142*8975f5c5SAndroid Build Coastguard Worker {
143*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
144*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
145*8975f5c5SAndroid Build Coastguard Worker }
146*8975f5c5SAndroid Build Coastguard Worker
clearSubImage(const gl::Context * context,GLint level,const gl::Box & area,GLenum format,GLenum type,const uint8_t * data)147*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::clearSubImage(const gl::Context *context,
148*8975f5c5SAndroid Build Coastguard Worker GLint level,
149*8975f5c5SAndroid Build Coastguard Worker const gl::Box &area,
150*8975f5c5SAndroid Build Coastguard Worker GLenum format,
151*8975f5c5SAndroid Build Coastguard Worker GLenum type,
152*8975f5c5SAndroid Build Coastguard Worker const uint8_t *data)
153*8975f5c5SAndroid Build Coastguard Worker {
154*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
155*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
156*8975f5c5SAndroid Build Coastguard Worker }
157*8975f5c5SAndroid Build Coastguard Worker
getMemorySize() const158*8975f5c5SAndroid Build Coastguard Worker GLint TextureImpl::getMemorySize() const
159*8975f5c5SAndroid Build Coastguard Worker {
160*8975f5c5SAndroid Build Coastguard Worker return 0;
161*8975f5c5SAndroid Build Coastguard Worker }
162*8975f5c5SAndroid Build Coastguard Worker
getLevelMemorySize(gl::TextureTarget target,GLint level)163*8975f5c5SAndroid Build Coastguard Worker GLint TextureImpl::getLevelMemorySize(gl::TextureTarget target, GLint level)
164*8975f5c5SAndroid Build Coastguard Worker {
165*8975f5c5SAndroid Build Coastguard Worker return 0;
166*8975f5c5SAndroid Build Coastguard Worker }
167*8975f5c5SAndroid Build Coastguard Worker
setStorageAttribs(const gl::Context * context,gl::TextureType type,size_t levels,GLint internalformat,const gl::Extents & size,const GLint * attribList)168*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::setStorageAttribs(const gl::Context *context,
169*8975f5c5SAndroid Build Coastguard Worker gl::TextureType type,
170*8975f5c5SAndroid Build Coastguard Worker size_t levels,
171*8975f5c5SAndroid Build Coastguard Worker GLint internalformat,
172*8975f5c5SAndroid Build Coastguard Worker const gl::Extents &size,
173*8975f5c5SAndroid Build Coastguard Worker const GLint *attribList)
174*8975f5c5SAndroid Build Coastguard Worker {
175*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
176*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
177*8975f5c5SAndroid Build Coastguard Worker }
178*8975f5c5SAndroid Build Coastguard Worker
getImageCompressionRate(const gl::Context * context)179*8975f5c5SAndroid Build Coastguard Worker GLint TextureImpl::getImageCompressionRate(const gl::Context *context)
180*8975f5c5SAndroid Build Coastguard Worker {
181*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
182*8975f5c5SAndroid Build Coastguard Worker return 0;
183*8975f5c5SAndroid Build Coastguard Worker }
184*8975f5c5SAndroid Build Coastguard Worker
getFormatSupportedCompressionRates(const gl::Context * context,GLenum internalformat,GLsizei bufSize,GLint * rates)185*8975f5c5SAndroid Build Coastguard Worker GLint TextureImpl::getFormatSupportedCompressionRates(const gl::Context *context,
186*8975f5c5SAndroid Build Coastguard Worker GLenum internalformat,
187*8975f5c5SAndroid Build Coastguard Worker GLsizei bufSize,
188*8975f5c5SAndroid Build Coastguard Worker GLint *rates)
189*8975f5c5SAndroid Build Coastguard Worker {
190*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
191*8975f5c5SAndroid Build Coastguard Worker return 0;
192*8975f5c5SAndroid Build Coastguard Worker }
193*8975f5c5SAndroid Build Coastguard Worker
getNativeID() const194*8975f5c5SAndroid Build Coastguard Worker GLint TextureImpl::getNativeID() const
195*8975f5c5SAndroid Build Coastguard Worker {
196*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
197*8975f5c5SAndroid Build Coastguard Worker return 0;
198*8975f5c5SAndroid Build Coastguard Worker }
199*8975f5c5SAndroid Build Coastguard Worker
getColorReadFormat(const gl::Context * context)200*8975f5c5SAndroid Build Coastguard Worker GLenum TextureImpl::getColorReadFormat(const gl::Context *context)
201*8975f5c5SAndroid Build Coastguard Worker {
202*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
203*8975f5c5SAndroid Build Coastguard Worker return GL_NONE;
204*8975f5c5SAndroid Build Coastguard Worker }
205*8975f5c5SAndroid Build Coastguard Worker
getColorReadType(const gl::Context * context)206*8975f5c5SAndroid Build Coastguard Worker GLenum TextureImpl::getColorReadType(const gl::Context *context)
207*8975f5c5SAndroid Build Coastguard Worker {
208*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
209*8975f5c5SAndroid Build Coastguard Worker return GL_NONE;
210*8975f5c5SAndroid Build Coastguard Worker }
211*8975f5c5SAndroid Build Coastguard Worker
getTexImage(const gl::Context * context,const gl::PixelPackState & packState,gl::Buffer * packBuffer,gl::TextureTarget target,GLint level,GLenum format,GLenum type,void * pixels)212*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::getTexImage(const gl::Context *context,
213*8975f5c5SAndroid Build Coastguard Worker const gl::PixelPackState &packState,
214*8975f5c5SAndroid Build Coastguard Worker gl::Buffer *packBuffer,
215*8975f5c5SAndroid Build Coastguard Worker gl::TextureTarget target,
216*8975f5c5SAndroid Build Coastguard Worker GLint level,
217*8975f5c5SAndroid Build Coastguard Worker GLenum format,
218*8975f5c5SAndroid Build Coastguard Worker GLenum type,
219*8975f5c5SAndroid Build Coastguard Worker void *pixels)
220*8975f5c5SAndroid Build Coastguard Worker {
221*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
222*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
223*8975f5c5SAndroid Build Coastguard Worker }
224*8975f5c5SAndroid Build Coastguard Worker
getCompressedTexImage(const gl::Context * context,const gl::PixelPackState & packState,gl::Buffer * packBuffer,gl::TextureTarget target,GLint level,void * pixels)225*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::getCompressedTexImage(const gl::Context *context,
226*8975f5c5SAndroid Build Coastguard Worker const gl::PixelPackState &packState,
227*8975f5c5SAndroid Build Coastguard Worker gl::Buffer *packBuffer,
228*8975f5c5SAndroid Build Coastguard Worker gl::TextureTarget target,
229*8975f5c5SAndroid Build Coastguard Worker GLint level,
230*8975f5c5SAndroid Build Coastguard Worker void *pixels)
231*8975f5c5SAndroid Build Coastguard Worker {
232*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
233*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Stop;
234*8975f5c5SAndroid Build Coastguard Worker }
235*8975f5c5SAndroid Build Coastguard Worker
getRequiredExternalTextureImageUnits(const gl::Context * context)236*8975f5c5SAndroid Build Coastguard Worker GLint TextureImpl::getRequiredExternalTextureImageUnits(const gl::Context *context)
237*8975f5c5SAndroid Build Coastguard Worker {
238*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
239*8975f5c5SAndroid Build Coastguard Worker return 0;
240*8975f5c5SAndroid Build Coastguard Worker }
241*8975f5c5SAndroid Build Coastguard Worker
onLabelUpdate(const gl::Context * context)242*8975f5c5SAndroid Build Coastguard Worker angle::Result TextureImpl::onLabelUpdate(const gl::Context *context)
243*8975f5c5SAndroid Build Coastguard Worker {
244*8975f5c5SAndroid Build Coastguard Worker return angle::Result::Continue;
245*8975f5c5SAndroid Build Coastguard Worker }
246*8975f5c5SAndroid Build Coastguard Worker
247*8975f5c5SAndroid Build Coastguard Worker } // namespace rx
248