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

Unified Diff: src/gpu/GrFragmentProcessor.cpp

Issue 1350523004: Move GrFragmentProcessor implementation to its own cpp file (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: whitespace 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gyp/gpu.gypi ('k') | src/gpu/GrProcessor.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/GrFragmentProcessor.cpp
diff --git a/src/gpu/GrProcessor.cpp b/src/gpu/GrFragmentProcessor.cpp
similarity index 50%
copy from src/gpu/GrProcessor.cpp
copy to src/gpu/GrFragmentProcessor.cpp
index e6be1da33a6e43159e636201a4770122186e6dd6..fcc9c74fa4ac5778870374f71ff6fbbbb5b1d257 100644
--- a/src/gpu/GrProcessor.cpp
+++ b/src/gpu/GrFragmentProcessor.cpp
@@ -1,134 +1,15 @@
-/*
- * Copyright 2012 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "GrProcessor.h"
-#include "GrContext.h"
-#include "GrCoordTransform.h"
-#include "GrGeometryProcessor.h"
-#include "GrInvariantOutput.h"
-#include "GrMemoryPool.h"
-#include "GrXferProcessor.h"
-#include "SkSpinlock.h"
-#include "gl/GrGLFragmentProcessor.h"
-
-#if SK_ALLOW_STATIC_GLOBAL_INITIALIZERS
-
-class GrFragmentProcessor;
-class GrGeometryProcessor;
/*
- * Originally these were both in the processor unit test header, but then it seemed to cause linker
- * problems on android.
- */
-template<>
-SkTArray<GrProcessorTestFactory<GrFragmentProcessor>*, true>*
-GrProcessorTestFactory<GrFragmentProcessor>::GetFactories() {
- static SkTArray<GrProcessorTestFactory<GrFragmentProcessor>*, true> gFactories;
- return &gFactories;
-}
-
-template<>
-SkTArray<GrProcessorTestFactory<GrXPFactory>*, true>*
-GrProcessorTestFactory<GrXPFactory>::GetFactories() {
- static SkTArray<GrProcessorTestFactory<GrXPFactory>*, true> gFactories;
- return &gFactories;
-}
-
-template<>
-SkTArray<GrProcessorTestFactory<GrGeometryProcessor>*, true>*
-GrProcessorTestFactory<GrGeometryProcessor>::GetFactories() {
- static SkTArray<GrProcessorTestFactory<GrGeometryProcessor>*, true> gFactories;
- return &gFactories;
-}
-
-/*
- * To ensure we always have successful static initialization, before creating from the factories
- * we verify the count is as expected. If a new factory is added, then these numbers must be
- * manually adjusted.
- */
-static const int kFPFactoryCount = 38;
-static const int kGPFactoryCount = 14;
-static const int kXPFactoryCount = 5;
-
-template<>
-void GrProcessorTestFactory<GrFragmentProcessor>::VerifyFactoryCount() {
- if (kFPFactoryCount != GetFactories()->count()) {
- SkFAIL("Wrong number of fragment processor factories!");
- }
-}
-
-template<>
-void GrProcessorTestFactory<GrGeometryProcessor>::VerifyFactoryCount() {
- if (kGPFactoryCount != GetFactories()->count()) {
- SkFAIL("Wrong number of geometry processor factories!");
- }
-}
-
-template<>
-void GrProcessorTestFactory<GrXPFactory>::VerifyFactoryCount() {
- if (kXPFactoryCount != GetFactories()->count()) {
- SkFAIL("Wrong number of xp factory factories!");
- }
-}
-
-#endif
-
-
-// We use a global pool protected by a mutex(spinlock). Chrome may use the same GrContext on
-// different threads. The GrContext is not used concurrently on different threads and there is a
-// memory barrier between accesses of a context on different threads. Also, there may be multiple
-// GrContexts and those contexts may be in use concurrently on different threads.
-namespace {
-SK_DECLARE_STATIC_SPINLOCK(gProcessorSpinlock);
-class MemoryPoolAccessor {
-public:
- MemoryPoolAccessor() { gProcessorSpinlock.acquire(); }
-
- ~MemoryPoolAccessor() { gProcessorSpinlock.release(); }
-
- GrMemoryPool* pool() const {
- static GrMemoryPool gPool(4096, 4096);
- return &gPool;
- }
-};
-}
-
-int32_t GrProcessor::gCurrProcessorClassID = GrProcessor::kIllegalProcessorClassID;
-
-///////////////////////////////////////////////////////////////////////////////
-
-GrProcessor::~GrProcessor() {}
-
-void GrProcessor::addTextureAccess(const GrTextureAccess* access) {
- fTextureAccesses.push_back(access);
- this->addGpuResource(access->getProgramTexture());
-}
+* Copyright 2015 Google Inc.
+*
+* Use of this source code is governed by a BSD-style license that can be
+* found in the LICENSE file.
+*/
-void* GrProcessor::operator new(size_t size) {
- return MemoryPoolAccessor().pool()->allocate(size);
-}
-
-void GrProcessor::operator delete(void* target) {
- return MemoryPoolAccessor().pool()->release(target);
-}
-
-bool GrProcessor::hasSameTextureAccesses(const GrProcessor& that) const {
- if (this->numTextures() != that.numTextures()) {
- return false;
- }
- for (int i = 0; i < this->numTextures(); ++i) {
- if (this->textureAccess(i) != that.textureAccess(i)) {
- return false;
- }
- }
- return true;
-}
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
+#include "GrFragmentProcessor.h"
+#include "GrCoordTransform.h"
+#include "gl/GrGLFragmentProcessor.h"
+#include "effects/GrXfermodeFragmentProcessor.h"
GrFragmentProcessor::~GrFragmentProcessor() {
// If we got here then our ref count must have reached zero, so we will have converted refs
@@ -241,15 +122,8 @@ bool GrFragmentProcessor::hasSameTransforms(const GrFragmentProcessor& that) con
return true;
}
-#include "effects/GrXfermodeFragmentProcessor.h"
-
const GrFragmentProcessor* GrFragmentProcessor::MulOuputByInputAlpha(
const GrFragmentProcessor* fp) {
return GrXfermodeFragmentProcessor::CreateFromDstProcessor(fp, SkXfermode::kDstIn_Mode);
}
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-// Initial static variable from GrXPFactory
-int32_t GrXPFactory::gCurrXPFClassID =
- GrXPFactory::kIllegalXPFClassID;
« no previous file with comments | « gyp/gpu.gypi ('k') | src/gpu/GrProcessor.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698