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

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

Issue 23767005: Add getGLMatrix method to MatrixState (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 3 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 | Annotate | Revision Log
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 11
11 void GrGLClearErr(const GrGLInterface* gl) { 12 void GrGLClearErr(const GrGLInterface* gl) {
12 while (GR_GL_NO_ERROR != gl->fGetError()) {} 13 while (GR_GL_NO_ERROR != gl->fGetError()) {}
13 } 14 }
14 15
15 namespace { 16 namespace {
16 const char *get_error_string(uint32_t err) { 17 const char *get_error_string(uint32_t err) {
17 switch (err) { 18 switch (err) {
18 case GR_GL_NO_ERROR: 19 case GR_GL_NO_ERROR:
19 return ""; 20 return "";
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 const GrGLubyte* v; 230 const GrGLubyte* v;
230 GR_GL_CALL_RET(gl, v, GetString(GR_GL_SHADING_LANGUAGE_VERSION)); 231 GR_GL_CALL_RET(gl, v, GetString(GR_GL_SHADING_LANGUAGE_VERSION));
231 return GrGLGetGLSLVersionFromString((const char*) v); 232 return GrGLGetGLSLVersionFromString((const char*) v);
232 } 233 }
233 234
234 GrGLVendor GrGLGetVendor(const GrGLInterface* gl) { 235 GrGLVendor GrGLGetVendor(const GrGLInterface* gl) {
235 const GrGLubyte* v; 236 const GrGLubyte* v;
236 GR_GL_CALL_RET(gl, v, GetString(GR_GL_VENDOR)); 237 GR_GL_CALL_RET(gl, v, GetString(GR_GL_VENDOR));
237 return GrGLGetVendorFromString((const char*) v); 238 return GrGLGetVendorFromString((const char*) v);
238 } 239 }
240
241 template<> void GrGLGetMatrix<3>(GrGLfloat* dest, const SkMatrix& src) {
242 // Col 0
243 dest[0] = SkScalarToFloat(src[SkMatrix::kMScaleX]);
244 dest[1] = SkScalarToFloat(src[SkMatrix::kMSkewY]);
245 dest[2] = SkScalarToFloat(src[SkMatrix::kMPersp0]);
246
247 // Col 1
248 dest[3] = SkScalarToFloat(src[SkMatrix::kMSkewX]);
249 dest[4] = SkScalarToFloat(src[SkMatrix::kMScaleY]);
250 dest[5] = SkScalarToFloat(src[SkMatrix::kMPersp1]);
251
252 // Col 2
253 dest[6] = SkScalarToFloat(src[SkMatrix::kMTransX]);
254 dest[7] = SkScalarToFloat(src[SkMatrix::kMTransY]);
255 dest[8] = SkScalarToFloat(src[SkMatrix::kMPersp2]);
256 }
257
258 template<> void GrGLGetMatrix<4>(GrGLfloat* dest, const SkMatrix& src) {
259 // Col 0
260 dest[0] = SkScalarToFloat(src[SkMatrix::kMScaleX]);
261 dest[1] = SkScalarToFloat(src[SkMatrix::kMSkewY]);
262 dest[2] = 0;
263 dest[3] = SkScalarToFloat(src[SkMatrix::kMPersp0]);
264
265 // Col 1
266 dest[4] = SkScalarToFloat(src[SkMatrix::kMSkewX]);
267 dest[5] = SkScalarToFloat(src[SkMatrix::kMScaleY]);
268 dest[6] = 0;
269 dest[7] = SkScalarToFloat(src[SkMatrix::kMPersp1]);
270
271 // Col 2
272 dest[8] = 0;
273 dest[9] = 0;
274 dest[10] = 1;
275 dest[11] = 0;
276
277 // Col 3
278 dest[12] = SkScalarToFloat(src[SkMatrix::kMTransX]);
279 dest[13] = SkScalarToFloat(src[SkMatrix::kMTransY]);
280 dest[14] = 0;
281 dest[15] = SkScalarToFloat(src[SkMatrix::kMPersp2]);
282 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698