blob: 7c723a8434ccbbc25e80f889a80204f89f98ed71 [file] [log] [blame]
bsalomon682c2692015-05-22 14:01:46 -07001/*
2 * Copyright 2015 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef GrContextOptions_DEFINED
9#define GrContextOptions_DEFINED
10
11#include "SkTypes.h"
12
13struct GrContextOptions {
bsalomon4ee6bd82015-05-27 13:23:23 -070014 GrContextOptions()
15 : fDrawPathToCompressedTexture(false)
16 , fSuppressPrints(false)
cdalton6fd158e2015-05-27 15:08:33 -070017 , fMaxTextureSizeOverride(SK_MaxS32)
bsalomonc59a1df2015-06-01 07:13:42 -070018 , fMinTextureSizeOverride(0)
joshualitt7224c862015-05-29 06:46:47 -070019 , fSuppressDualSourceBlending(false)
joshualitt83bc2292015-06-18 14:18:02 -070020 , fGeometryBufferMapThreshold(-1)
21 , fUseDrawInsteadOfPartialRenderTargetWrite(false) {}
bsalomon682c2692015-05-22 14:01:46 -070022
23 // EXPERIMENTAL
24 // May be removed in the future, or may become standard depending
25 // on the outcomes of a variety of internal tests.
26 bool fDrawPathToCompressedTexture;
bsalomon4ee6bd82015-05-27 13:23:23 -070027
bsalomon682c2692015-05-22 14:01:46 -070028 // Suppress prints for the GrContext.
29 bool fSuppressPrints;
bsalomon4ee6bd82015-05-27 13:23:23 -070030
31 /** Overrides: These options override feature detection using backend API queries. These
32 overrides can only reduce the feature set or limits, never increase them beyond the
33 detected values. */
34
cdalton6fd158e2015-05-27 15:08:33 -070035 int fMaxTextureSizeOverride;
bsalomonc59a1df2015-06-01 07:13:42 -070036 int fMinTextureSizeOverride;
cdalton6fd158e2015-05-27 15:08:33 -070037 bool fSuppressDualSourceBlending;
joshualitt7224c862015-05-29 06:46:47 -070038
joshualitte5b74c62015-06-01 14:17:47 -070039 /** the threshold in bytes above which we will use a buffer mapping API to map vertex and index
40 buffers to CPU memory in order to update them. A value of -1 means the GrContext should
41 deduce the optimal value for this platform. */
42 int fGeometryBufferMapThreshold;
joshualitt83bc2292015-06-18 14:18:02 -070043
44 /** some gpus have problems with partial writes of the rendertarget */
45 bool fUseDrawInsteadOfPartialRenderTargetWrite;
bsalomon682c2692015-05-22 14:01:46 -070046};
47
48#endif