Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: src/gpu/glsl/GrGLSLProgramBuilder.cpp

Issue 2143143002: Add Texture2D and Sampler GrSLTypes (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: nits Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/gpu/glsl/GrGLSL.h ('k') | src/gpu/glsl/GrGLSLSampler.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "glsl/GrGLSLProgramBuilder.h" 8 #include "glsl/GrGLSLProgramBuilder.h"
9 9
10 #include "GrPipeline.h" 10 #include "GrPipeline.h"
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 } 220 }
221 221
222 void GrGLSLProgramBuilder::emitSamplers(const GrProcessor& processor, 222 void GrGLSLProgramBuilder::emitSamplers(const GrProcessor& processor,
223 SkTArray<SamplerHandle>* outTexSamplers, 223 SkTArray<SamplerHandle>* outTexSamplers,
224 SkTArray<SamplerHandle>* outBufferSample rs) { 224 SkTArray<SamplerHandle>* outBufferSample rs) {
225 SkString name; 225 SkString name;
226 int numTextures = processor.numTextures(); 226 int numTextures = processor.numTextures();
227 for (int t = 0; t < numTextures; ++t) { 227 for (int t = 0; t < numTextures; ++t) {
228 const GrTextureAccess& access = processor.textureAccess(t); 228 const GrTextureAccess& access = processor.textureAccess(t);
229 GrSLType samplerType = access.getTexture()->samplerType(); 229 GrSLType samplerType = access.getTexture()->samplerType();
230 if (kSamplerExternal_GrSLType == samplerType) { 230 if (kTextureExternalSampler_GrSLType == samplerType) {
231 const char* externalFeatureString = this->glslCaps()->externalTextur eExtensionString(); 231 const char* externalFeatureString = this->glslCaps()->externalTextur eExtensionString();
232 // We shouldn't ever create a GrGLTexture that requires external sam pler type 232 // We shouldn't ever create a GrGLTexture that requires external sam pler type
233 SkASSERT(externalFeatureString); 233 SkASSERT(externalFeatureString);
234 this->addFeature(access.getVisibility(), 234 this->addFeature(access.getVisibility(),
235 1 << GrGLSLShaderBuilder::kExternalTexture_GLSLPriv ateFeature, 235 1 << GrGLSLShaderBuilder::kExternalTexture_GLSLPriv ateFeature,
236 externalFeatureString); 236 externalFeatureString);
237 } 237 }
238 name.printf("TextureSampler%d", t); 238 name.printf("TextureSampler%d", t);
239 this->emitSampler(samplerType, access.getTexture()->config(), 239 this->emitSampler(samplerType, access.getTexture()->config(),
240 name.c_str(), access.getVisibility(), outTexSamplers); 240 name.c_str(), access.getVisibility(), outTexSamplers);
241 } 241 }
242 242
243 if (int numBuffers = processor.numBuffers()) { 243 if (int numBuffers = processor.numBuffers()) {
244 SkASSERT(this->glslCaps()->texelBufferSupport()); 244 SkASSERT(this->glslCaps()->texelBufferSupport());
245 GrShaderFlags texelBufferVisibility = kNone_GrShaderFlags; 245 GrShaderFlags texelBufferVisibility = kNone_GrShaderFlags;
246 246
247 for (int b = 0; b < numBuffers; ++b) { 247 for (int b = 0; b < numBuffers; ++b) {
248 const GrBufferAccess& access = processor.bufferAccess(b); 248 const GrBufferAccess& access = processor.bufferAccess(b);
249 name.printf("BufferSampler%d", b); 249 name.printf("BufferSampler%d", b);
250 this->emitSampler(kSamplerBuffer_GrSLType, access.texelConfig(), nam e.c_str(), 250 this->emitSampler(kTextureBufferSampler_GrSLType, access.texelConfig (), name.c_str(),
251 access.visibility(), outBufferSamplers); 251 access.visibility(), outBufferSamplers);
252 texelBufferVisibility |= access.visibility(); 252 texelBufferVisibility |= access.visibility();
253 } 253 }
254 254
255 if (const char* extension = this->glslCaps()->texelBufferExtensionString ()) { 255 if (const char* extension = this->glslCaps()->texelBufferExtensionString ()) {
256 this->addFeature(texelBufferVisibility, 256 this->addFeature(texelBufferVisibility,
257 1 << GrGLSLShaderBuilder::kTexelBuffer_GLSLPrivateF eature, 257 1 << GrGLSLShaderBuilder::kTexelBuffer_GLSLPrivateF eature,
258 extension); 258 extension);
259 } 259 }
260 } 260 }
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 delete fFragmentProcessors[i]; 401 delete fFragmentProcessors[i];
402 } 402 }
403 } 403 }
404 404
405 void GrGLSLProgramBuilder::finalizeShaders() { 405 void GrGLSLProgramBuilder::finalizeShaders() {
406 this->varyingHandler()->finalize(); 406 this->varyingHandler()->finalize();
407 fVS.finalize(kVertex_GrShaderFlag); 407 fVS.finalize(kVertex_GrShaderFlag);
408 fFS.finalize(kFragment_GrShaderFlag); 408 fFS.finalize(kFragment_GrShaderFlag);
409 409
410 } 410 }
OLDNEW
« no previous file with comments | « src/gpu/glsl/GrGLSL.h ('k') | src/gpu/glsl/GrGLSLSampler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698