| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 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 #include "GrGLUtil.h" | 9 #include "GrGLUtil.h" |
| 10 #include "SkMatrix.h" | 10 #include "SkMatrix.h" |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 GR_GL_CALL_RET(gl, v, GetString(GR_GL_VENDOR)); | 299 GR_GL_CALL_RET(gl, v, GetString(GR_GL_VENDOR)); |
| 300 return GrGLGetVendorFromString((const char*) v); | 300 return GrGLGetVendorFromString((const char*) v); |
| 301 } | 301 } |
| 302 | 302 |
| 303 GrGLRenderer GrGLGetRenderer(const GrGLInterface* gl) { | 303 GrGLRenderer GrGLGetRenderer(const GrGLInterface* gl) { |
| 304 const GrGLubyte* v; | 304 const GrGLubyte* v; |
| 305 GR_GL_CALL_RET(gl, v, GetString(GR_GL_RENDERER)); | 305 GR_GL_CALL_RET(gl, v, GetString(GR_GL_RENDERER)); |
| 306 return GrGLGetRendererFromString((const char*) v); | 306 return GrGLGetRendererFromString((const char*) v); |
| 307 } | 307 } |
| 308 | 308 |
| 309 template<> void GrGLGetMatrix<3>(float* dest, const SkMatrix& src) { | |
| 310 GR_STATIC_ASSERT(sizeof(float) == sizeof (GrGLfloat)); | |
| 311 // Col 0 | |
| 312 dest[0] = SkScalarToFloat(src[SkMatrix::kMScaleX]); | |
| 313 dest[1] = SkScalarToFloat(src[SkMatrix::kMSkewY]); | |
| 314 dest[2] = SkScalarToFloat(src[SkMatrix::kMPersp0]); | |
| 315 | |
| 316 // Col 1 | |
| 317 dest[3] = SkScalarToFloat(src[SkMatrix::kMSkewX]); | |
| 318 dest[4] = SkScalarToFloat(src[SkMatrix::kMScaleY]); | |
| 319 dest[5] = SkScalarToFloat(src[SkMatrix::kMPersp1]); | |
| 320 | |
| 321 // Col 2 | |
| 322 dest[6] = SkScalarToFloat(src[SkMatrix::kMTransX]); | |
| 323 dest[7] = SkScalarToFloat(src[SkMatrix::kMTransY]); | |
| 324 dest[8] = SkScalarToFloat(src[SkMatrix::kMPersp2]); | |
| 325 } | |
| 326 | |
| 327 template<> void GrGLGetMatrix<4>(float* dest, const SkMatrix& src) { | |
| 328 GR_STATIC_ASSERT(sizeof(float) == sizeof (GrGLfloat)); | |
| 329 // Col 0 | |
| 330 dest[0] = SkScalarToFloat(src[SkMatrix::kMScaleX]); | |
| 331 dest[1] = SkScalarToFloat(src[SkMatrix::kMSkewY]); | |
| 332 dest[2] = 0; | |
| 333 dest[3] = SkScalarToFloat(src[SkMatrix::kMPersp0]); | |
| 334 | |
| 335 // Col 1 | |
| 336 dest[4] = SkScalarToFloat(src[SkMatrix::kMSkewX]); | |
| 337 dest[5] = SkScalarToFloat(src[SkMatrix::kMScaleY]); | |
| 338 dest[6] = 0; | |
| 339 dest[7] = SkScalarToFloat(src[SkMatrix::kMPersp1]); | |
| 340 | |
| 341 // Col 2 | |
| 342 dest[8] = 0; | |
| 343 dest[9] = 0; | |
| 344 dest[10] = 1; | |
| 345 dest[11] = 0; | |
| 346 | |
| 347 // Col 3 | |
| 348 dest[12] = SkScalarToFloat(src[SkMatrix::kMTransX]); | |
| 349 dest[13] = SkScalarToFloat(src[SkMatrix::kMTransY]); | |
| 350 dest[14] = 0; | |
| 351 dest[15] = SkScalarToFloat(src[SkMatrix::kMPersp2]); | |
| 352 } | |
| 353 | |
| 354 GrGLenum GrToGLStencilFunc(GrStencilFunc basicFunc) { | 309 GrGLenum GrToGLStencilFunc(GrStencilFunc basicFunc) { |
| 355 static const GrGLenum gTable[] = { | 310 static const GrGLenum gTable[] = { |
| 356 GR_GL_ALWAYS, // kAlways_StencilFunc | 311 GR_GL_ALWAYS, // kAlways_StencilFunc |
| 357 GR_GL_NEVER, // kNever_StencilFunc | 312 GR_GL_NEVER, // kNever_StencilFunc |
| 358 GR_GL_GREATER, // kGreater_StencilFunc | 313 GR_GL_GREATER, // kGreater_StencilFunc |
| 359 GR_GL_GEQUAL, // kGEqual_StencilFunc | 314 GR_GL_GEQUAL, // kGEqual_StencilFunc |
| 360 GR_GL_LESS, // kLess_StencilFunc | 315 GR_GL_LESS, // kLess_StencilFunc |
| 361 GR_GL_LEQUAL, // kLEqual_StencilFunc, | 316 GR_GL_LEQUAL, // kLEqual_StencilFunc, |
| 362 GR_GL_EQUAL, // kEqual_StencilFunc, | 317 GR_GL_EQUAL, // kEqual_StencilFunc, |
| 363 GR_GL_NOTEQUAL, // kNotEqual_StencilFunc, | 318 GR_GL_NOTEQUAL, // kNotEqual_StencilFunc, |
| 364 }; | 319 }; |
| 365 GR_STATIC_ASSERT(SK_ARRAY_COUNT(gTable) == kBasicStencilFuncCount); | 320 GR_STATIC_ASSERT(SK_ARRAY_COUNT(gTable) == kBasicStencilFuncCount); |
| 366 GR_STATIC_ASSERT(0 == kAlways_StencilFunc); | 321 GR_STATIC_ASSERT(0 == kAlways_StencilFunc); |
| 367 GR_STATIC_ASSERT(1 == kNever_StencilFunc); | 322 GR_STATIC_ASSERT(1 == kNever_StencilFunc); |
| 368 GR_STATIC_ASSERT(2 == kGreater_StencilFunc); | 323 GR_STATIC_ASSERT(2 == kGreater_StencilFunc); |
| 369 GR_STATIC_ASSERT(3 == kGEqual_StencilFunc); | 324 GR_STATIC_ASSERT(3 == kGEqual_StencilFunc); |
| 370 GR_STATIC_ASSERT(4 == kLess_StencilFunc); | 325 GR_STATIC_ASSERT(4 == kLess_StencilFunc); |
| 371 GR_STATIC_ASSERT(5 == kLEqual_StencilFunc); | 326 GR_STATIC_ASSERT(5 == kLEqual_StencilFunc); |
| 372 GR_STATIC_ASSERT(6 == kEqual_StencilFunc); | 327 GR_STATIC_ASSERT(6 == kEqual_StencilFunc); |
| 373 GR_STATIC_ASSERT(7 == kNotEqual_StencilFunc); | 328 GR_STATIC_ASSERT(7 == kNotEqual_StencilFunc); |
| 374 SkASSERT((unsigned) basicFunc < kBasicStencilFuncCount); | 329 SkASSERT((unsigned) basicFunc < kBasicStencilFuncCount); |
| 375 | 330 |
| 376 return gTable[basicFunc]; | 331 return gTable[basicFunc]; |
| 377 } | 332 } |
| OLD | NEW |