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

Unified Diff: skia/sgl/SkGraphics.cpp

Issue 113827: Remove the remainder of the skia source code from the Chromium repo.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « skia/sgl/SkGlyphCache.cpp ('k') | skia/sgl/SkMask.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/sgl/SkGraphics.cpp
===================================================================
--- skia/sgl/SkGraphics.cpp (revision 16859)
+++ skia/sgl/SkGraphics.cpp (working copy)
@@ -1,528 +0,0 @@
-/* libs/graphics/sgl/SkGraphics.cpp
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
-
-#include "SkGraphics.h"
-
-#include "Sk64.h"
-#include "SkBlitter.h"
-#include "SkCanvas.h"
-#include "SkDOM.h"
-#include "SkFloat.h"
-#include "SkGeometry.h"
-#include "SkGlobals.h"
-#include "SkMath.h"
-#include "SkMatrix.h"
-#include "SkPath.h"
-#include "SkPathEffect.h"
-#include "SkPathMeasure.h"
-#include "SkRandom.h"
-#include "SkRefCnt.h"
-#include "SkScalerContext.h"
-#include "SkShader.h"
-#include "SkStream.h"
-#include "SkTSearch.h"
-#include "SkTime.h"
-#include "SkUtils.h"
-#include "SkXfermode.h"
-
-#if 0
-
-#define SK_SORT_TEMPLATE_TYPE int
-#define SK_SORT_TEMPLATE_NAME sort_int
-#define SK_SORT_TEMPLATE_CMP(a, b) ((a) - (b))
-#include "SkSortTemplate.h"
-
-#define SK_SORT_TEMPLATE_TYPE int*
-#define SK_SORT_TEMPLATE_NAME sort_intptr
-#define SK_SORT_TEMPLATE_CMP(a, b) (*(a) - *(b))
-#include "SkSortTemplate.h"
-
-static void test_sort()
-{
- int array[] = { 4, 3, 7, 5, 2, 5, 1, 2, 9, 6, 7, 4, 5, 3, 1, 0 };
- int* ptr[SK_ARRAY_COUNT(array)];
- int i, N = SK_ARRAY_COUNT(array) - 1;
-
- for (i = 0; i < N; i++)
- printf(" %d", array[i]);
- printf("\n");
-
- for (i = 0; i < N; i++)
- ptr[i] = &array[i];
- sort_intptr(ptr, N);
- for (i = 0; i < N; i++)
- printf(" %d", *ptr[i]);
- printf("\n");
-
- sort_int(array, N);
- for (i = 0; i < N; i++)
- printf(" %d", array[i]);
- printf("\n");
-
-}
-#endif
-
-#define SPEED_TESTx
-
-#define typesizeline(type) { #type , sizeof(type) }
-#define unittestline(type) { #type , type::UnitTest }
-
-
-#ifdef BUILD_EMBOSS_TABLE
- extern void SkEmbossMask_BuildTable();
-#endif
-
-#ifdef BUILD_RADIALGRADIENT_TABLE
- extern void SkRadialGradient_BuildTable();
-#endif
-
-#define BIG_LOOP_COUNT 1000000
-#define TEXT_LOOP_COUNT 1000
-
-#ifdef SPEED_TEST
-static int test_s64(int i)
-{
- Sk64 a, b, c;
-
- c.set(0);
- a.set(i);
- b.setMul(i, i);
- a.add(b);
- a.add(c);
- return c.getFixed();
-}
-
-static int test_native_64(int i)
-{
- int16_t a, b, c;
-
- c = 0;
- a = i;
- b = (int64_t)i * i;
- a += b;
- a += c;
- return (int)(c >> 16);
-}
-
-static void test_drawText(SkBitmap::Config config, SkColor color)
-{
- SkBitmap bm;
-
- bm.setConfig(config, 320, 240);
- bm.allocPixels();
-
- SkCanvas canvas(bm);
- SkPaint paint;
-
- paint.setAntiAlias(true);
- paint.setTextSize(SkIntToScalar(12));
- paint.setColor(color);
-
- SkScalar x = SkIntToScalar(20);
- SkScalar y = SkIntToScalar(100);
- const char* text = "Hamburgefons";
- size_t len = strlen(text);
-
- // draw once to populate the cache
- canvas.drawText(text, len, x, y, paint);
-
- SkMSec now = SkTime::GetMSecs();
- for (int i = 0; i < TEXT_LOOP_COUNT; i++)
- canvas.drawText(text, len, x, y, paint);
- printf("----------- Config: %d, Color=%x, CPS = %g\n", config, color,
- len * TEXT_LOOP_COUNT * 1000.0 / (SkTime::GetMSecs() - now));
-}
-
-#endif
-
-#include "SkFloatBits.h"
-
-static inline float fast_inc(float x) {
- SkFloatIntUnion data;
- data.fFloat = x;
- data.fSignBitInt += 1;
- return data.fFloat;
-}
-
-extern float dummy();
-int time_math() {
- SkMSec now;
- int i;
- int sum = 0;
- const int repeat = 1000000;
- float f;
-
- f = dummy();
- now = SkTime::GetMSecs();
- for (i = repeat - 1; i >= 0; --i) {
- sum += (int)f; f = fast_inc(f);
- sum += (int)f; f = fast_inc(f);
- sum += (int)f; f = fast_inc(f);
- sum += (int)f; f = fast_inc(f);
- }
- SkDebugf("---- native cast %d\n", SkTime::GetMSecs() - now);
-
- f = dummy();
- now = SkTime::GetMSecs();
- for (i = repeat - 1; i >= 0; --i) {
- sum += SkFloatToIntCast(f); f = fast_inc(f);
- sum += SkFloatToIntCast(f); f = fast_inc(f);
- sum += SkFloatToIntCast(f); f = fast_inc(f);
- sum += SkFloatToIntCast(f); f = fast_inc(f);
- }
- SkDebugf("---- hack cast %d\n", SkTime::GetMSecs() - now);
-
- f = dummy();
- now = SkTime::GetMSecs();
- for (i = repeat - 1; i >= 0; --i) {
- sum += (int)floorf(f + 0.5f); f = fast_inc(f);
- sum += (int)floorf(f + 0.5f); f = fast_inc(f);
- sum += (int)floorf(f + 0.5f); f = fast_inc(f);
- sum += (int)floorf(f + 0.5f); f = fast_inc(f);
- }
- SkDebugf("---- native round %d\n", SkTime::GetMSecs() - now);
-
- f = dummy();
- now = SkTime::GetMSecs();
- for (i = repeat - 1; i >= 0; --i) {
- sum += SkFloatToIntRound(f); f = fast_inc(f);
- sum += SkFloatToIntRound(f); f = fast_inc(f);
- sum += SkFloatToIntRound(f); f = fast_inc(f);
- sum += SkFloatToIntRound(f); f = fast_inc(f);
- }
- SkDebugf("---- hack round %d\n", SkTime::GetMSecs() - now);
-
- f = dummy();
- now = SkTime::GetMSecs();
- for (i = repeat - 1; i >= 0; --i) {
- sum += SkFloat2Bits(floorf(f)); f = fast_inc(f);
- sum += SkFloat2Bits(floorf(f)); f = fast_inc(f);
- sum += SkFloat2Bits(floorf(f)); f = fast_inc(f);
- sum += SkFloat2Bits(floorf(f)); f = fast_inc(f);
- }
- SkDebugf("---- native floor %d\n", SkTime::GetMSecs() - now);
-
- f = dummy();
- now = SkTime::GetMSecs();
- for (i = repeat - 1; i >= 0; --i) {
- sum += SkFloatToIntFloor(f); f = fast_inc(f);
- sum += SkFloatToIntFloor(f); f = fast_inc(f);
- sum += SkFloatToIntFloor(f); f = fast_inc(f);
- sum += SkFloatToIntFloor(f); f = fast_inc(f);
- }
- SkDebugf("---- hack floor %d\n", SkTime::GetMSecs() - now);
-
- return sum;
-}
-
-static float time_intToFloat() {
- const int repeat = 1000000;
- int i, n;
- SkMSec now;
- float sum = 0;
-
- n = (int)dummy();
- now = SkTime::GetMSecs();
- for (i = repeat - 1; i >= 0; --i) {
- sum += (float)n; n += 1;
- sum += (float)n; n += 1;
- sum += (float)n; n += 1;
- sum += (float)n; n += 1;
- }
- SkDebugf("---- native i2f %d\n", SkTime::GetMSecs() - now);
-
- n = (int)dummy();
- now = SkTime::GetMSecs();
- for (i = repeat - 1; i >= 0; --i) {
- sum += SkIntToFloatCast(n); n += 1;
- sum += SkIntToFloatCast(n); n += 1;
- sum += SkIntToFloatCast(n); n += 1;
- sum += SkIntToFloatCast(n); n += 1;
- }
- SkDebugf("---- check i2f %d\n", SkTime::GetMSecs() - now);
-
- n = (int)dummy();
- now = SkTime::GetMSecs();
- for (i = repeat - 1; i >= 0; --i) {
- sum += SkIntToFloatCast_NoOverflowCheck(n); n += 1;
- sum += SkIntToFloatCast_NoOverflowCheck(n); n += 1;
- sum += SkIntToFloatCast_NoOverflowCheck(n); n += 1;
- sum += SkIntToFloatCast_NoOverflowCheck(n); n += 1;
- }
- SkDebugf("---- nocheck i2f %d\n", SkTime::GetMSecs() - now);
-
- return sum;
-}
-
-void SkGraphics::Init(bool runUnitTests)
-{
- SkGlobals::Init();
-
-// time_math();
-// time_intToFloat();
-
-#ifdef BUILD_EMBOSS_TABLE
- SkEmbossMask_BuildTable();
-#endif
-#ifdef BUILD_RADIALGRADIENT_TABLE
- SkRadialGradient_BuildTable();
-#endif
-
-#ifdef SK_SUPPORT_UNITTEST
- if (runUnitTests == false)
- return;
- int i;
-
- static const struct {
- const char* fTypeName;
- size_t fSizeOf;
- } gTypeSize[] = {
- typesizeline(char),
- typesizeline(short),
- typesizeline(int),
- typesizeline(long),
- typesizeline(size_t),
- typesizeline(void*),
-
- typesizeline(S8CPU),
- typesizeline(U8CPU),
- typesizeline(S16CPU),
- typesizeline(U16CPU),
-
- typesizeline(SkPoint),
- typesizeline(SkRect),
- typesizeline(SkMatrix),
- typesizeline(SkPath),
- typesizeline(SkGlyph),
- typesizeline(SkRefCnt),
-
- typesizeline(SkPaint),
- typesizeline(SkCanvas),
- typesizeline(SkBlitter),
- typesizeline(SkShader),
- typesizeline(SkXfermode),
- typesizeline(SkPathEffect)
- };
-
-#ifdef SK_CPU_BENDIAN
- SkDebugf("SkGraphics: big-endian\n");
-#else
- SkDebugf("SkGraphics: little-endian\n");
-#endif
-
- {
- char test = 0xFF;
- int itest = test; // promote to int, see if it sign-extended
- if (itest < 0)
- SkDebugf("SkGraphics: char is signed\n");
- else
- SkDebugf("SkGraphics: char is unsigned\n");
- }
- for (i = 0; i < (int)SK_ARRAY_COUNT(gTypeSize); i++)
- SkDebugf("SkGraphics: sizeof(%s) = %d\n", gTypeSize[i].fTypeName, gTypeSize[i].fSizeOf);
-
- static const struct {
- const char* fTypeName;
- void (*fUnitTest)();
- } gUnitTests[] = {
- unittestline(Sk64),
- unittestline(SkMath),
- unittestline(SkUtils),
- unittestline(SkString),
- unittestline(SkMatrix),
- unittestline(SkGeometry),
- unittestline(SkPath),
- unittestline(SkPathMeasure),
- unittestline(SkStream),
- unittestline(SkWStream),
- };
-
- for (i = 0; i < (int)SK_ARRAY_COUNT(gUnitTests); i++)
- {
- SkDebugf("SkGraphics: Running UnitTest for %s\n", gUnitTests[i].fTypeName);
- gUnitTests[i].fUnitTest();
- SkDebugf("SkGraphics: End UnitTest for %s\n", gUnitTests[i].fTypeName);
- }
- SkQSort_UnitTest();
-
-#endif
-
- if (false) // test asm fixmul
- {
- int j;
- SkMSec now = SkTime::GetMSecs();
- for (j = 0; j < BIG_LOOP_COUNT; j++) {
- (void)SkFixedMul_portable(0x8000, 0x150000);
- }
- SkMSec now2 = SkTime::GetMSecs();
- printf("-------- SkFixedMul_portable = %d\n", now2 - now);
-
- for (j = 0; j < BIG_LOOP_COUNT; j++) {
- (void)SkFixedMul(0x8000, 0x150000);
- }
- printf("-------- SkFixedMul = %d\n", SkTime::GetMSecs() - now2);
-
- SkRandom rand;
- for (j = 0; j < 10000; j++) {
- SkFixed a = rand.nextS() >> 8;
- SkFixed b = rand.nextS() >> 8;
- SkFixed c1 = SkFixedMul_portable(a, b);
- SkFixed c2 = SkFixedMul(a, b);
- if (SkAbs32(c1 - c2) > 1)
- printf("------ FixMul disagreement: (%x %x) slow=%x fast=%x\n", a, b, c1, c2);
- }
- }
-
- if (false) // test asm fractmul
- {
- int j;
- SkMSec now = SkTime::GetMSecs();
- for (j = 0; j < BIG_LOOP_COUNT; j++) {
- (void)SkFractMul_portable(0x800000, 0x1500000);
- }
- SkMSec now2 = SkTime::GetMSecs();
- printf("-------- SkFractMul_portable = %d\n", now2 - now);
-
- for (j = 0; j < BIG_LOOP_COUNT; j++) {
- (void)SkFractMul(0x800000, 0x1500000);
- }
- printf("-------- SkFractMul = %d\n", SkTime::GetMSecs() - now2);
-
- SkRandom rand;
- for (j = 0; j < 10000; j++) {
- SkFixed a = rand.nextS() >> 1;
- SkFixed b = rand.nextS() >> 1;
- SkFixed c1 = SkFractMul_portable(a, b);
- SkFixed c2 = SkFractMul(a, b);
- if (SkAbs32(c1 - c2) > 1)
- printf("------ FractMul disagreement: (%x %x) slow=%x fast=%x\n", a, b, c1, c2);
- }
- }
-
- if (false) // test asm clz
- {
- int j;
- SkMSec now = SkTime::GetMSecs();
- for (j = 0; j < BIG_LOOP_COUNT; j++) {
- (void)SkCLZ_portable(now);
- }
- SkMSec now2 = SkTime::GetMSecs();
- printf("-------- SkCLZ_portable = %d\n", now2 - now);
-
- for (j = 0; j < BIG_LOOP_COUNT; j++) {
- (void)SkCLZ(now);
- }
- printf("-------- SkCLZ = %d\n", SkTime::GetMSecs() - now2);
-
- SkRandom rand;
- for (j = 0; j < 10000; j++) {
- uint32_t a = rand.nextU();
- int c1 = SkCLZ_portable(a);
- int c2 = SkCLZ(a);
- if (c1 != c2)
- printf("------ CLZ disagreement: (%x) slow=%x fast=%x\n", a, c1, c2);
- }
- }
-
-#ifdef SPEED_TEST
- if (false) {
- int i;
- int (*proc)(int);
-
- static const struct {
- int (*proc)(int);
- const char* name;
- } gList[] = {
- { test_s64, "Sk64" },
- { test_native_64, "native" }
- };
-
- for (size_t j = 0; j < SK_ARRAY_COUNT(gList); j++) {
- SkMSec now = SkTime::GetMSecs();
- proc = gList[j].proc;
- for (i = 0; i < BIG_LOOP_COUNT; i++) {
- proc(i);
- }
- printf("-------- %s = %d\n", gList[j].name, SkTime::GetMSecs() - now);
- }
- }
-#endif
-
- if (false) {
- size_t i, size = 480;
- char* buffer = (char*)sk_malloc_throw(size);
- uint16_t* buffer16 = (uint16_t*)buffer;
- uint32_t* buffer32 = (uint32_t*)buffer;
-
- SkMSec now = SkTime::GetMSecs();
- for (i = 0; i < 100000; i++) {
- sk_memset16(buffer16, (uint16_t)i, size >> 1);
- }
- SkMSec now2 = SkTime::GetMSecs();
- for (i = 0; i < 100000; i++) {
- sk_memset16_portable(buffer16, (uint16_t)i, size >> 1);
- }
- SkMSec now3 = SkTime::GetMSecs();
- printf("----------- memset16: native %d, portable %d\n", now2 - now, now3 - now2);
-
- now = SkTime::GetMSecs();
- for (i = 0; i < 100000; i++) {
- sk_memset32(buffer32, i, size >> 2);
- }
- now2 = SkTime::GetMSecs();
- for (i = 0; i < 100000; i++) {
- sk_memset32_portable(buffer32, i, size >> 2);
- }
- now3 = SkTime::GetMSecs();
- printf("----------- memset32: native %d, portable %d\n", now2 - now, now3 - now2);
-
- sk_free(buffer);
- }
-
-#ifdef SPEED_TEST
- if (false) {
- test_drawText(SkBitmap::kARGB_8888_Config, SK_ColorBLACK);
- test_drawText(SkBitmap::kARGB_8888_Config, SK_ColorRED);
- test_drawText(SkBitmap::kRGB_565_Config, SK_ColorBLACK);
- test_drawText(SkBitmap::kRGB_565_Config, SK_ColorRED);
- }
-#endif
-
-// if (true) {
-// test_sort();
-// }
-}
-
-////////////////////////////////////////////////////////////////////////////
-
-#include "SkGlyphCache.h"
-#include "SkImageDecoder.h"
-
-void SkGraphics::Term() {
- SkGraphics::SetFontCacheUsed(0);
- SkGlobals::Term();
-}
-
-size_t SkGraphics::GetFontCacheUsed() {
- return SkGlyphCache::GetCacheUsed();
-}
-
-bool SkGraphics::SetFontCacheUsed(size_t usageInBytes) {
- return SkGlyphCache::SetCacheUsed(usageInBytes);
-}
-
-float dummy() { return 1.25f; }
« no previous file with comments | « skia/sgl/SkGlyphCache.cpp ('k') | skia/sgl/SkMask.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698