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

Side by Side Diff: src/gpu/gl/GrGLUtil.cpp

Issue 1434313002: Make all GrFragmentProcessors GL independent. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 1 month 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/gl/GrGLUtil.h ('k') | src/gpu/gl/builders/GrGLProgramBuilder.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 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
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 }
OLDNEW
« no previous file with comments | « src/gpu/gl/GrGLUtil.h ('k') | src/gpu/gl/builders/GrGLProgramBuilder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698