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

Side by Side Diff: src/gpu/GrRectanizer_pow2.cpp

Issue 303263005: Add Sample slide for Rectanizers (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Make sure GPU-less build will compile Created 6 years, 6 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 | « src/gpu/GrRectanizer_pow2.h ('k') | src/gpu/GrRectanizer_skyline.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 /* 2 /*
3 * Copyright 2010 Google Inc. 3 * Copyright 2010 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "GrRectanizer_pow2.h" 9 #include "GrRectanizer_pow2.h"
10 #include "GrTBSearch.h"
11 10
12 bool GrRectanizerPow2::addRect(int width, int height, GrIPoint16* loc) { 11 bool GrRectanizerPow2::addRect(int width, int height, GrIPoint16* loc) {
13 if ((unsigned)width > (unsigned)this->width() || 12 if ((unsigned)width > (unsigned)this->width() ||
14 (unsigned)height > (unsigned)this->height()) { 13 (unsigned)height > (unsigned)this->height()) {
15 return false; 14 return false;
16 } 15 }
17 16
18 int32_t area = width * height; 17 int32_t area = width * height; // computed here since height will be modifie d
19 18
20 /*
jvanverth1 2014/05/30 18:03:02 Why did you remove this comment?
robertphillips 2014/05/30 18:19:27 This approach doesn't use binary search. Also ther
21 We use bsearch, but there may be more than one row with the same height,
22 so we actually search for height-1, which can only be a pow2 itself if
23 height == 2. Thus we set a minimum height.
24 */
25 height = GrNextPow2(height); 19 height = GrNextPow2(height);
26 if (height < kMIN_HEIGHT_POW2) { 20 if (height < kMIN_HEIGHT_POW2) {
27 height = kMIN_HEIGHT_POW2; 21 height = kMIN_HEIGHT_POW2;
28 } 22 }
29 23
30 Row* row = &fRows[HeightToRowIndex(height)]; 24 Row* row = &fRows[HeightToRowIndex(height)];
31 SkASSERT(row->fRowHeight == 0 || row->fRowHeight == height); 25 SkASSERT(row->fRowHeight == 0 || row->fRowHeight == height);
32 26
33 if (0 == row->fRowHeight) { 27 if (0 == row->fRowHeight) {
34 if (!this->canAddStrip(height)) { 28 if (!this->canAddStrip(height)) {
(...skipping 22 matching lines...) Expand all
57 fAreaSoFar += area; 51 fAreaSoFar += area;
58 return true; 52 return true;
59 } 53 }
60 54
61 /////////////////////////////////////////////////////////////////////////////// 55 ///////////////////////////////////////////////////////////////////////////////
62 56
63 // factory is now in GrRectanizer_skyline.cpp 57 // factory is now in GrRectanizer_skyline.cpp
64 //GrRectanizer* GrRectanizer::Factory(int width, int height) { 58 //GrRectanizer* GrRectanizer::Factory(int width, int height) {
65 // return SkNEW_ARGS(GrRectanizerPow2, (width, height)); 59 // return SkNEW_ARGS(GrRectanizerPow2, (width, height));
66 //} 60 //}
OLDNEW
« no previous file with comments | « src/gpu/GrRectanizer_pow2.h ('k') | src/gpu/GrRectanizer_skyline.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698