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

Side by Side Diff: tools/PictureRenderer.h

Issue 1338003002: skia: Add ANGLE with GL backend to nanobench/DM (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: consistent naming Created 5 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
« no previous file with comments | « tests/SkpSkGrTest.cpp ('k') | no next file » | 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 2012 Google Inc. 2 * Copyright 2012 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 #ifndef PictureRenderer_DEFINED 8 #ifndef PictureRenderer_DEFINED
9 #define PictureRenderer_DEFINED 9 #define PictureRenderer_DEFINED
10 10
(...skipping 26 matching lines...) Expand all
37 namespace sk_tools { 37 namespace sk_tools {
38 38
39 class TiledPictureRenderer; 39 class TiledPictureRenderer;
40 40
41 class PictureRenderer : public SkRefCnt { 41 class PictureRenderer : public SkRefCnt {
42 42
43 public: 43 public:
44 enum SkDeviceTypes { 44 enum SkDeviceTypes {
45 #if SK_ANGLE 45 #if SK_ANGLE
46 kAngle_DeviceType, 46 kAngle_DeviceType,
47 kAngle_GL_DeviceType,
bsalomon 2015/09/11 18:54:47 The PictureRenderer stuff isn't really used anymor
47 #endif 48 #endif
48 #if SK_COMMAND_BUFFER 49 #if SK_COMMAND_BUFFER
49 kCommandBuffer_DeviceType, 50 kCommandBuffer_DeviceType,
50 #endif 51 #endif
51 #if SK_MESA 52 #if SK_MESA
52 kMesa_DeviceType, 53 kMesa_DeviceType,
53 #endif 54 #endif
54 kBitmap_DeviceType, 55 kBitmap_DeviceType,
55 #if SK_SUPPORT_GPU 56 #if SK_SUPPORT_GPU
56 kGPU_DeviceType, 57 kGPU_DeviceType,
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 171
171 /** 172 /**
172 * Set the backend type. Returns true on success and false on failure. 173 * Set the backend type. Returns true on success and false on failure.
173 */ 174 */
174 #if SK_SUPPORT_GPU 175 #if SK_SUPPORT_GPU
175 bool setDeviceType(SkDeviceTypes deviceType, GrGLStandard gpuAPI = kNone_GrG LStandard) { 176 bool setDeviceType(SkDeviceTypes deviceType, GrGLStandard gpuAPI = kNone_GrG LStandard) {
176 #else 177 #else
177 bool setDeviceType(SkDeviceTypes deviceType) { 178 bool setDeviceType(SkDeviceTypes deviceType) {
178 #endif 179 #endif
179 fDeviceType = deviceType; 180 fDeviceType = deviceType;
181 if (deviceType == kBitmap_DeviceType) {
182 return true;
183 }
184
180 #if SK_SUPPORT_GPU 185 #if SK_SUPPORT_GPU
181 // In case this function is called more than once 186 // In case this function is called more than once
182 SkSafeUnref(fGrContext); 187 SkSafeUnref(fGrContext);
183 fGrContext = nullptr; 188 fGrContext = nullptr;
184 // Set to Native so it will have an initial value. 189 // Set to Native so it will have an initial value.
185 GrContextFactory::GLContextType glContextType = GrContextFactory::kNativ e_GLContextType; 190 GrContextFactory::GLContextType glContextType = getGPUContextType(fDevic eType);
186 #endif 191 if (GrContextFactory::kNull_GLContextType == glContextType) {
187 switch(deviceType) { 192 return false;
188 case kBitmap_DeviceType:
189 return true;
190 #if SK_SUPPORT_GPU
191 case kGPU_DeviceType:
192 // Already set to GrContextFactory::kNative_GLContextType, above .
193 break;
194 case kNVPR_DeviceType:
195 glContextType = GrContextFactory::kNVPR_GLContextType;
196 break;
197 #if SK_ANGLE
198 case kAngle_DeviceType:
199 glContextType = GrContextFactory::kANGLE_GLContextType;
200 break;
201 #endif
202 #if SK_COMMAND_BUFFER
203 case kCommandBuffer_DeviceType:
204 glContextType = GrContextFactory::kCommandBuffer_GLContextType;
205 break;
206 #endif
207 #if SK_MESA
208 case kMesa_DeviceType:
209 glContextType = GrContextFactory::kMESA_GLContextType;
210 break;
211 #endif
212 #endif
213 default:
214 // Invalid device type.
215 return false;
216 } 193 }
217 #if SK_SUPPORT_GPU 194
218 fGrContext = fGrContextFactory.get(glContextType, gpuAPI); 195 fGrContext = fGrContextFactory.get(glContextType, gpuAPI);
219 if (nullptr == fGrContext) { 196 if (nullptr == fGrContext) {
220 return false; 197 return false;
221 } else { 198 } else {
222 fGrContext->ref(); 199 fGrContext->ref();
223 return true; 200 return true;
224 } 201 }
225 #endif 202 #endif
203 return false;
226 } 204 }
227 205
228 #if SK_SUPPORT_GPU 206 #if SK_SUPPORT_GPU
229 void setSampleCount(int sampleCount) { 207 void setSampleCount(int sampleCount) {
230 fSampleCount = sampleCount; 208 fSampleCount = sampleCount;
231 } 209 }
232 210
233 void setUseDFText(bool useDFText) { 211 void setUseDFText(bool useDFText) {
234 fUseDFText = useDFText; 212 fUseDFText = useDFText;
235 } 213 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 config.append("_gpu"); 266 config.append("_gpu");
289 } 267 }
290 break; 268 break;
291 case kNVPR_DeviceType: 269 case kNVPR_DeviceType:
292 config.appendf("_nvprmsaa%d", fSampleCount); 270 config.appendf("_nvprmsaa%d", fSampleCount);
293 break; 271 break;
294 #if SK_ANGLE 272 #if SK_ANGLE
295 case kAngle_DeviceType: 273 case kAngle_DeviceType:
296 config.append("_angle"); 274 config.append("_angle");
297 break; 275 break;
276 case kAngle_GL_DeviceType:
277 config.append("_angle-gl");
278 break;
298 #endif 279 #endif
299 #if SK_COMMAND_BUFFER 280 #if SK_COMMAND_BUFFER
300 case kCommandBuffer_DeviceType: 281 case kCommandBuffer_DeviceType:
301 config.append("_commandbuffer"); 282 config.append("_commandbuffer");
302 break; 283 break;
303 #endif 284 #endif
304 #if SK_MESA 285 #if SK_MESA
305 case kMesa_DeviceType: 286 case kMesa_DeviceType:
306 config.append("_mesa"); 287 config.append("_mesa");
307 break; 288 break;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 break; 323 break;
343 case kNVPR_DeviceType: 324 case kNVPR_DeviceType:
344 tmp = "nvprmsaa"; 325 tmp = "nvprmsaa";
345 tmp.appendS32(fSampleCount); 326 tmp.appendS32(fSampleCount);
346 result["config"] = tmp.c_str(); 327 result["config"] = tmp.c_str();
347 break; 328 break;
348 #if SK_ANGLE 329 #if SK_ANGLE
349 case kAngle_DeviceType: 330 case kAngle_DeviceType:
350 result["config"] = "angle"; 331 result["config"] = "angle";
351 break; 332 break;
333 case kAngle_GL_DeviceType:
334 result["config"] = "angle-gl";
335 break;
352 #endif 336 #endif
353 #if SK_COMMAND_BUFFER 337 #if SK_COMMAND_BUFFER
354 case kCommandBuffer_DeviceType: 338 case kCommandBuffer_DeviceType:
355 result["config"] = "commandbuffer"; 339 result["config"] = "commandbuffer";
356 break; 340 break;
357 #endif 341 #endif
358 #if SK_MESA 342 #if SK_MESA
359 case kMesa_DeviceType: 343 case kMesa_DeviceType:
360 result["config"] = "mesa"; 344 result["config"] = "mesa";
361 break; 345 break;
362 #endif 346 #endif
363 default: 347 default:
364 // Assume that no extra info means bitmap. 348 // Assume that no extra info means bitmap.
365 break; 349 break;
366 } 350 }
367 #endif 351 #endif
368 return result; 352 return result;
369 } 353 }
370 354
371 #if SK_SUPPORT_GPU 355 #if SK_SUPPORT_GPU
372 bool isUsingGpuDevice() { 356 bool isUsingGpuDevice() {
373 switch (fDeviceType) { 357 switch (fDeviceType) {
374 case kGPU_DeviceType: 358 case kGPU_DeviceType:
375 case kNVPR_DeviceType: 359 case kNVPR_DeviceType:
376 // fall through 360 // fall through
377 #if SK_ANGLE 361 #if SK_ANGLE
378 case kAngle_DeviceType: 362 case kAngle_DeviceType:
363 case kAngle_GL_DeviceType:
379 // fall through 364 // fall through
380 #endif 365 #endif
381 #if SK_COMMAND_BUFFER 366 #if SK_COMMAND_BUFFER
382 case kCommandBuffer_DeviceType: 367 case kCommandBuffer_DeviceType:
383 // fall through 368 // fall through
384 #endif 369 #endif
385 #if SK_MESA 370 #if SK_MESA
386 case kMesa_DeviceType: 371 case kMesa_DeviceType:
387 #endif 372 #endif
388 return true; 373 return true;
389 default: 374 default:
390 return false; 375 return false;
391 } 376 }
392 } 377 }
393 378
394 SkGLContext* getGLContext() { 379 SkGLContext* getGLContext() {
395 GrContextFactory::GLContextType glContextType 380 GrContextFactory::GLContextType glContextType = getGPUContextType(fDevic eType);
396 = GrContextFactory::kNull_GLContextType; 381 if (GrContextFactory::kNull_GLContextType == glContextType) {
397 switch(fDeviceType) { 382 return nullptr;
398 case kGPU_DeviceType:
399 glContextType = GrContextFactory::kNative_GLContextType;
400 break;
401 case kNVPR_DeviceType:
402 glContextType = GrContextFactory::kNVPR_GLContextType;
403 break;
404 #if SK_ANGLE
405 case kAngle_DeviceType:
406 glContextType = GrContextFactory::kANGLE_GLContextType;
407 break;
408 #endif
409 #if SK_COMMAND_BUFFER
410 case kCommandBuffer_DeviceType:
411 glContextType = GrContextFactory::kCommandBuffer_GLContextType;
412 break;
413 #endif
414 #if SK_MESA
415 case kMesa_DeviceType:
416 glContextType = GrContextFactory::kMESA_GLContextType;
417 break;
418 #endif
419 default:
420 return nullptr;
421 } 383 }
422 return fGrContextFactory.getGLContext(glContextType); 384 return fGrContextFactory.getGLContext(glContextType);
423 } 385 }
424 386
425 GrContext* getGrContext() { 387 GrContext* getGrContext() {
426 return fGrContext; 388 return fGrContext;
427 } 389 }
428 390
429 const GrContextOptions& getGrContextOptions() { 391 const GrContextOptions& getGrContextOptions() {
430 return fGrContextFactory.getGlobalOptions(); 392 return fGrContextFactory.getGlobalOptions();
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 SkBBHFactory* getFactory(); 467 SkBBHFactory* getFactory();
506 uint32_t recordFlags() const { return 0; } 468 uint32_t recordFlags() const { return 0; }
507 SkCanvas* setupCanvas(); 469 SkCanvas* setupCanvas();
508 virtual SkCanvas* setupCanvas(int width, int height); 470 virtual SkCanvas* setupCanvas(int width, int height);
509 471
510 /** 472 /**
511 * Copy src to dest; if src==nullptr, set dest to empty string. 473 * Copy src to dest; if src==nullptr, set dest to empty string.
512 */ 474 */
513 static void CopyString(SkString* dest, const SkString* src); 475 static void CopyString(SkString* dest, const SkString* src);
514 476
477 #if SK_SUPPORT_GPU
478 /**
479 * Get the context type for a given device type. Returns kNull_GLContextTyp e for non gpu
480 * device types.
481 */
482 GrContextFactory::GLContextType getGPUContextType(SkDeviceTypes deviceType) const {
483 GrContextFactory::GLContextType glContextType = GrContextFactory::kNull_ GLContextType;
484 switch(deviceType) {
485 case kGPU_DeviceType:
486 glContextType = GrContextFactory::kNative_GLContextType;
487 break;
488 case kNVPR_DeviceType:
489 glContextType = GrContextFactory::kNVPR_GLContextType;
490 break;
491 #if SK_ANGLE
492 case kAngle_DeviceType:
493 glContextType = GrContextFactory::kANGLE_GLContextType;
494 break;
495 case kAngle_GL_DeviceType:
496 glContextType = GrContextFactory::kANGLE_GL_GLContextType;
497 break;
498 #endif // SK_ANGLE
499 #if SK_COMMAND_BUFFER
500 case kCommandBuffer_DeviceType:
501 glContextType = GrContextFactory::kCommandBuffer_GLContextType;
502 break;
503 #endif // SK_COMMAND_BUFFER
504 #if SK_MESA
505 case kMesa_DeviceType:
506 glContextType = GrContextFactory::kMESA_GLContextType;
507 break;
508 #endif // SK_MESA
509 }
510 return glContextType;
511 }
512 #endif // SK_SUPPORT_GPU
513
515 private: 514 private:
516 SkISize fViewport; 515 SkISize fViewport;
517 SkScalar fScaleFactor; 516 SkScalar fScaleFactor;
518 #if SK_SUPPORT_GPU 517 #if SK_SUPPORT_GPU
519 GrContextFactory fGrContextFactory; 518 GrContextFactory fGrContextFactory;
520 GrContext* fGrContext; 519 GrContext* fGrContext;
521 int fSampleCount; 520 int fSampleCount;
522 bool fUseDFText; 521 bool fUseDFText;
523 #endif 522 #endif
524 523
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
746 745
747 #if SK_SUPPORT_GPU 746 #if SK_SUPPORT_GPU
748 extern PictureRenderer* CreateGatherPixelRefsRenderer(const GrContextOptions& op ts); 747 extern PictureRenderer* CreateGatherPixelRefsRenderer(const GrContextOptions& op ts);
749 #else 748 #else
750 extern PictureRenderer* CreateGatherPixelRefsRenderer(); 749 extern PictureRenderer* CreateGatherPixelRefsRenderer();
751 #endif 750 #endif
752 751
753 } 752 }
754 753
755 #endif // PictureRenderer_DEFINED 754 #endif // PictureRenderer_DEFINED
OLDNEW
« no previous file with comments | « tests/SkpSkGrTest.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698