aboutsummaryrefslogtreecommitdiffhomepage
path: root/gpu/src/GrGpuGLShaders2.cpp
diff options
context:
space:
mode:
authorGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-01-05 16:34:41 +0000
committerGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-01-05 16:34:41 +0000
commit2fbc7fa460c99bffa78b9afb9aaa4dc0db68e1ba (patch)
tree0526346f894b7929425be61fdd6c47ad35221da5 /gpu/src/GrGpuGLShaders2.cpp
parent5a8a131d8a46424ae494041de2d748cdecea8ec9 (diff)
Make SampleApp build on Win32 (still requires glew, this needs to be fixed)
In fbo test funciton set min filter to nearest (for systems that don't support rendering to level of a texture that isn't mip map complete.) Add a lot more sample slides to the win32 build Fix texture red/blue color swap on windows. git-svn-id: http://skia.googlecode.com/svn/trunk@677 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gpu/src/GrGpuGLShaders2.cpp')
-rw-r--r--gpu/src/GrGpuGLShaders2.cpp28
1 files changed, 17 insertions, 11 deletions
diff --git a/gpu/src/GrGpuGLShaders2.cpp b/gpu/src/GrGpuGLShaders2.cpp
index 2e41d56add..c7b3cb982b 100644
--- a/gpu/src/GrGpuGLShaders2.cpp
+++ b/gpu/src/GrGpuGLShaders2.cpp
@@ -96,12 +96,15 @@ struct GrGpuGLShaders2::StageDesc {
kNoPerspective_OptFlagBit = 0x1,
kIdentityMatrix_OptFlagBit = 0x2,
};
- int fOptFlags : 8;
- bool fEnabled : 8;
+ unsigned fOptFlags : 8;
+
+ unsigned fEnabled : 8;
+
enum Modulation {
kColor_Modulation,
kAlpha_Modulation,
} fModulation : 8;
+
enum CoordMapping {
kIdentity_CoordMapping,
kRadialGradient_CoordMapping,
@@ -113,13 +116,16 @@ struct GrGpuGLShaders2::StageDesc {
// must be tightly packed
struct GrGpuGLShaders2::ProgramDesc {
GrVertexLayout fVertexLayout;
+ GR_STATIC_ASSERT(2 == sizeof(GrVertexLayout)); // pack with next field
+
enum {
kNotPoints_OptFlagBit = 0x1,
kVertexColorAllOnes_OptFlagBit = 0x2,
};
// we're assuming optflags and layout pack into 32 bits
- GR_STATIC_ASSERT(2 == sizeof(GrVertexLayout));
- int fOptFlags : 16;
+ // VS 2010 seems to require short rather than just unsigned
+ // for this to pack
+ unsigned short fOptFlags : 16;
StageDesc fStages[NUM_STAGES];
@@ -389,9 +395,9 @@ void GrGpuGLShaders2::ProgramUnitTest() {
x = (int)(random.nextF() * GR_ARRAY_COUNT(STAGE_OPTS));
pdesc.fStages[s].fOptFlags = STAGE_OPTS[x];
x = (int)(random.nextF() * GR_ARRAY_COUNT(STAGE_MODULATES));
- pdesc.fStages[s].fModulation = STAGE_MODULATES[x];
+ pdesc.fStages[s].fModulation = (StageDesc::Modulation) STAGE_MODULATES[x];
x = (int)(random.nextF() * GR_ARRAY_COUNT(STAGE_COORD_MAPPINGS));
- pdesc.fStages[s].fCoordMapping = STAGE_COORD_MAPPINGS[x];
+ pdesc.fStages[s].fCoordMapping = (StageDesc::CoordMapping) STAGE_COORD_MAPPINGS[x];
}
Program program;
GenProgram(pdesc, &program);
@@ -948,8 +954,8 @@ void GrGpuGLShaders2::getProgramDesc(PrimitiveType primType, ProgramDesc* desc)
for (int i = 1; i < NUM_STAGES; ++i) {
desc->fStages[i].fEnabled = false;
desc->fStages[i].fOptFlags = 0;
- desc->fStages[i].fCoordMapping = 0;
- desc->fStages[i].fModulation = 0;
+ desc->fStages[i].fCoordMapping = (StageDesc::CoordMapping)0;
+ desc->fStages[i].fModulation = (StageDesc::Modulation)0;
}
if (primType != kPoints_PrimitiveType) {
@@ -997,7 +1003,7 @@ void GrGpuGLShaders2::getProgramDesc(PrimitiveType primType, ProgramDesc* desc)
stage.fModulation = StageDesc::kColor_Modulation;
break;
case GrSamplerState::kSweep_SampleMode:
- stage.fCoordMapping = StageDesc::StageDesc::kSweepGradient_CoordMapping;
+ stage.fCoordMapping = StageDesc::kSweepGradient_CoordMapping;
stage.fModulation = StageDesc::kColor_Modulation;
break;
default:
@@ -1006,8 +1012,8 @@ void GrGpuGLShaders2::getProgramDesc(PrimitiveType primType, ProgramDesc* desc)
}
} else {
stage.fOptFlags = 0;
- stage.fCoordMapping = 0;
- stage.fModulation = 0;
+ stage.fCoordMapping = (StageDesc::CoordMapping)0;
+ stage.fModulation = (StageDesc::Modulation)0;
}
}