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

Side by Side Diff: src/gpu/gl/GrGLCaps.h

Issue 1569393002: Revert of Add a class representing texture swizzle. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 11 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/GrTextureAccess.cpp ('k') | src/gpu/gl/GrGLCaps.cpp » ('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 2012 Google Inc. 2 * Copyright 2012 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 8
9 #ifndef GrGLCaps_DEFINED 9 #ifndef GrGLCaps_DEFINED
10 #define GrGLCaps_DEFINED 10 #define GrGLCaps_DEFINED
11 11
12 #include "GrCaps.h"
12 #include "glsl/GrGLSL.h" 13 #include "glsl/GrGLSL.h"
13 #include "GrCaps.h"
14 #include "GrGLStencilAttachment.h" 14 #include "GrGLStencilAttachment.h"
15 #include "GrSwizzle.h"
16 #include "SkChecksum.h" 15 #include "SkChecksum.h"
17 #include "SkTHash.h" 16 #include "SkTHash.h"
18 #include "SkTArray.h" 17 #include "SkTArray.h"
19 18
20 class GrGLContextInfo; 19 class GrGLContextInfo;
21 class GrGLSLCaps; 20 class GrGLSLCaps;
22 21
23 /** 22 /**
24 * Stores some capabilities of a GL context. Most are determined by the GL 23 * Stores some capabilities of a GL context. Most are determined by the GL
25 * version and the extensions string. It also tracks formats that have passed 24 * version and the extensions string. It also tracks formats that have passed
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 } else { 135 } else {
137 return SkToBool(fConfigTable[config].fFlags & ConfigInfo::kRenderabl e_Flag); 136 return SkToBool(fConfigTable[config].fFlags & ConfigInfo::kRenderabl e_Flag);
138 } 137 }
139 } 138 }
140 139
141 /** Returns conversions to various GL format parameters for a GrPixelCfonig. */ 140 /** Returns conversions to various GL format parameters for a GrPixelCfonig. */
142 const ConfigFormats& configGLFormats(GrPixelConfig config) const { 141 const ConfigFormats& configGLFormats(GrPixelConfig config) const {
143 return fConfigTable[config].fFormats; 142 return fConfigTable[config].fFormats;
144 } 143 }
145 144
146 /** Returns the mapping between GrPixelConfig components and GL internal for mat components. */
147 const GrSwizzle& configSwizzle(GrPixelConfig config) const {
148 return fConfigTable[config].fSwizzle;
149 }
150
151 /** 145 /**
152 * Gets an array of legal stencil formats. These formats are not guaranteed 146 * Gets an array of legal stencil formats. These formats are not guaranteed
153 * to be supported by the driver but are legal GLenum names given the GL 147 * to be supported by the driver but are legal GLenum names given the GL
154 * version and extensions supported. 148 * version and extensions supported.
155 */ 149 */
156 const SkTArray<StencilFormat, true>& stencilFormats() const { 150 const SkTArray<StencilFormat, true>& stencilFormats() const {
157 return fStencilFormats; 151 return fStencilFormats;
158 } 152 }
159 153
160 /** 154 /**
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 300
307 bool isCoreProfile() const { return fIsCoreProfile; } 301 bool isCoreProfile() const { return fIsCoreProfile; }
308 302
309 bool bindFragDataLocationSupport() const { return fBindFragDataLocationSuppo rt; } 303 bool bindFragDataLocationSupport() const { return fBindFragDataLocationSuppo rt; }
310 304
311 bool bindUniformLocationSupport() const { return fBindUniformLocationSupport ; } 305 bool bindUniformLocationSupport() const { return fBindUniformLocationSupport ; }
312 306
313 /// Are textures with GL_TEXTURE_EXTERNAL_OES type supported. 307 /// Are textures with GL_TEXTURE_EXTERNAL_OES type supported.
314 bool externalTextureSupport() const { return fExternalTextureSupport; } 308 bool externalTextureSupport() const { return fExternalTextureSupport; }
315 309
316 /// GL_ARB_texture_swizzle
317 bool textureSwizzleSupport() const { return fTextureSwizzleSupport; }
318
319 /** 310 /**
320 * Is there support for enabling/disabling sRGB writes for sRGB-capable colo r attachments? 311 * Is there support for enabling/disabling sRGB writes for sRGB-capable colo r attachments?
321 * If false this does not mean sRGB is not supported but rather that if it i s supported 312 * If false this does not mean sRGB is not supported but rather that if it i s supported
322 * it cannot be turned off for configs that support it. 313 * it cannot be turned off for configs that support it.
323 */ 314 */
324 bool srgbWriteControl() const { return fSRGBWriteControl; } 315 bool srgbWriteControl() const { return fSRGBWriteControl; }
325 316
326 /** 317 /**
327 * Returns a string containing the caps info. 318 * Returns a string containing the caps info.
328 */ 319 */
329 SkString dump() const override; 320 SkString dump() const override;
330 321
331 bool rgba8888PixelsOpsAreSlow() const { return fRGBA8888PixelsOpsAreSlow; } 322 bool rgba8888PixelsOpsAreSlow() const { return fRGBA8888PixelsOpsAreSlow; }
332 bool partialFBOReadIsSlow() const { return fPartialFBOReadIsSlow; } 323 bool partialFBOReadIsSlow() const { return fPartialFBOReadIsSlow; }
333 324
334 const GrGLSLCaps* glslCaps() const { return reinterpret_cast<GrGLSLCaps*>(fS haderCaps.get()); } 325 const GrGLSLCaps* glslCaps() const { return reinterpret_cast<GrGLSLCaps*>(fS haderCaps.get()); }
335 326
336 private: 327 private:
337 void init(const GrContextOptions&, const GrGLContextInfo&, const GrGLInterfa ce*); 328 void init(const GrContextOptions&, const GrGLContextInfo&, const GrGLInterfa ce*);
338 void initGLSL(const GrGLContextInfo&); 329 void initGLSL(const GrGLContextInfo&);
339 bool hasPathRenderingSupport(const GrGLContextInfo&, const GrGLInterface*); 330 bool hasPathRenderingSupport(const GrGLContextInfo&, const GrGLInterface*);
340 331
341 void onApplyOptionsOverrides(const GrContextOptions& options) override; 332 void onApplyOptionsOverrides(const GrContextOptions& options) override;
342 333
343 void initFSAASupport(const GrGLContextInfo&, const GrGLInterface*); 334 void initFSAASupport(const GrGLContextInfo&, const GrGLInterface*);
344 void initBlendEqationSupport(const GrGLContextInfo&); 335 void initBlendEqationSupport(const GrGLContextInfo&);
345 void initStencilFormats(const GrGLContextInfo&); 336 void initStencilFormats(const GrGLContextInfo&);
346 // This must be called after initFSAASupport(). 337 // This must be called after initFSAASupport().
347 void initConfigTable(const GrGLContextInfo&, const GrGLInterface* gli, GrGLS LCaps* glslCaps); 338 void initConfigTable(const GrGLContextInfo&, const GrGLInterface* gli);
348 339
349 void initShaderPrecisionTable(const GrGLContextInfo& ctxInfo, 340 void initShaderPrecisionTable(const GrGLContextInfo& ctxInfo,
350 const GrGLInterface* intf, 341 const GrGLInterface* intf,
351 GrGLSLCaps* glslCaps); 342 GrGLSLCaps* glslCaps);
352 343
344 void initConfigSwizzleTable(const GrGLContextInfo& ctxInfo, GrGLSLCaps* glsl Caps);
345
346
353 SkTArray<StencilFormat, true> fStencilFormats; 347 SkTArray<StencilFormat, true> fStencilFormats;
354 348
355 int fMaxFragmentUniformVectors; 349 int fMaxFragmentUniformVectors;
356 int fMaxVertexAttributes; 350 int fMaxVertexAttributes;
357 int fMaxFragmentTextureUnits; 351 int fMaxFragmentTextureUnits;
358 352
359 MSFBOType fMSFBOType; 353 MSFBOType fMSFBOType;
360 InvalidateFBType fInvalidateFBType; 354 InvalidateFBType fInvalidateFBType;
361 MapBufferType fMapBufferType; 355 MapBufferType fMapBufferType;
362 TransferBufferType fTransferBufferType; 356 TransferBufferType fTransferBufferType;
(...skipping 12 matching lines...) Expand all
375 bool fES2CompatibilitySupport : 1; 369 bool fES2CompatibilitySupport : 1;
376 bool fMultisampleDisableSupport : 1; 370 bool fMultisampleDisableSupport : 1;
377 bool fUseNonVBOVertexAndIndexDynamicData : 1; 371 bool fUseNonVBOVertexAndIndexDynamicData : 1;
378 bool fIsCoreProfile : 1; 372 bool fIsCoreProfile : 1;
379 bool fBindFragDataLocationSupport : 1; 373 bool fBindFragDataLocationSupport : 1;
380 bool fSRGBWriteControl : 1; 374 bool fSRGBWriteControl : 1;
381 bool fRGBA8888PixelsOpsAreSlow : 1; 375 bool fRGBA8888PixelsOpsAreSlow : 1;
382 bool fPartialFBOReadIsSlow : 1; 376 bool fPartialFBOReadIsSlow : 1;
383 bool fBindUniformLocationSupport : 1; 377 bool fBindUniformLocationSupport : 1;
384 bool fExternalTextureSupport : 1; 378 bool fExternalTextureSupport : 1;
385 bool fTextureSwizzleSupport : 1;
386 379
387 /** Number type of the components (with out considering number of bits.) */ 380 /** Number type of the components (with out considering number of bits.) */
388 enum FormatType { 381 enum FormatType {
389 kNormalizedFixedPoint_FormatType, 382 kNormalizedFixedPoint_FormatType,
390 kFloat_FormatType, 383 kFloat_FormatType,
391 }; 384 };
392 385
393 struct ReadPixelsFormat { 386 struct ReadPixelsFormat {
394 ReadPixelsFormat() : fFormat(0), fType(0) {} 387 ReadPixelsFormat() : fFormat(0), fType(0) {}
395 GrGLenum fFormat; 388 GrGLenum fFormat;
(...skipping 22 matching lines...) Expand all
418 // Index fStencilFormats. 411 // Index fStencilFormats.
419 int fStencilFormatIndex; 412 int fStencilFormatIndex;
420 413
421 enum { 414 enum {
422 kVerifiedColorAttachment_Flag = 0x1, 415 kVerifiedColorAttachment_Flag = 0x1,
423 kTextureable_Flag = 0x2, 416 kTextureable_Flag = 0x2,
424 kRenderable_Flag = 0x4, 417 kRenderable_Flag = 0x4,
425 kRenderableWithMSAA_Flag = 0x8, 418 kRenderableWithMSAA_Flag = 0x8,
426 }; 419 };
427 uint32_t fFlags; 420 uint32_t fFlags;
428
429 GrSwizzle fSwizzle;
430 }; 421 };
431 422
432 ConfigInfo fConfigTable[kGrPixelConfigCnt]; 423 ConfigInfo fConfigTable[kGrPixelConfigCnt];
433 424
434 typedef GrCaps INHERITED; 425 typedef GrCaps INHERITED;
435 }; 426 };
436 427
437 #endif 428 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrTextureAccess.cpp ('k') | src/gpu/gl/GrGLCaps.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698