1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/* 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2011 Google Inc. 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 637a201231b8f6381938282675eb9abb50ab3b389reed@google.com */ 737a201231b8f6381938282675eb9abb50ab3b389reed@google.com 837a201231b8f6381938282675eb9abb50ab3b389reed@google.com#ifndef SkEmptyShader_DEFINED 937a201231b8f6381938282675eb9abb50ab3b389reed@google.com#define SkEmptyShader_DEFINED 1037a201231b8f6381938282675eb9abb50ab3b389reed@google.com 1137a201231b8f6381938282675eb9abb50ab3b389reed@google.com#include "SkShader.h" 1237a201231b8f6381938282675eb9abb50ab3b389reed@google.com 13ce56d965069c1649afe14319cb239e6ad670682acommit-bot@chromium.org// TODO: move this to private, as there is a public factory on SkShader 14ce56d965069c1649afe14319cb239e6ad670682acommit-bot@chromium.org 1537a201231b8f6381938282675eb9abb50ab3b389reed@google.com/** 1637a201231b8f6381938282675eb9abb50ab3b389reed@google.com * \class SkEmptyShader 1787fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org * A Shader that always draws nothing. Its createContext always returns NULL. 1837a201231b8f6381938282675eb9abb50ab3b389reed@google.com */ 1937a201231b8f6381938282675eb9abb50ab3b389reed@google.comclass SK_API SkEmptyShader : public SkShader { 2037a201231b8f6381938282675eb9abb50ab3b389reed@google.compublic: 2159ccef695cef28a74ab2ea13d5a6c9017af45402reed@google.com SkEmptyShader() {} 2237a201231b8f6381938282675eb9abb50ab3b389reed@google.com 2387fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org virtual size_t contextSize() const SK_OVERRIDE { 2487fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org // Even though createContext returns NULL we have to return a value of at least 2587fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org // sizeof(SkShader::Context) to satisfy SkSmallAllocator. 2687fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org return sizeof(SkShader::Context); 2787fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org } 2887fcd950198a16211b3988610beebb5ca5bcf323commit-bot@chromium.org 290f10f7bf1fb43ca6346dc220a076773b1f19a367commit-bot@chromium.org SK_TO_STRING_OVERRIDE() 30ba28d03e94dc221d6a803bf2a84a420b9159255cdjsollen@google.com SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkEmptyShader) 31a2ca41e3afdd8fad5e0e924dec029f33918e0a67djsollen@google.com 3237a201231b8f6381938282675eb9abb50ab3b389reed@google.comprotected: 339fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING 348b0e8ac5f582de80356019406e2975079bf0829dcommit-bot@chromium.org SkEmptyShader(SkReadBuffer& buffer) : INHERITED(buffer) {} 359fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed#endif 3637a201231b8f6381938282675eb9abb50ab3b389reed@google.com 37ce56d965069c1649afe14319cb239e6ad670682acommit-bot@chromium.org virtual SkShader::Context* onCreateContext(const ContextRec&, void*) const SK_OVERRIDE { 38ce56d965069c1649afe14319cb239e6ad670682acommit-bot@chromium.org return NULL; 39ce56d965069c1649afe14319cb239e6ad670682acommit-bot@chromium.org } 40ce56d965069c1649afe14319cb239e6ad670682acommit-bot@chromium.org 4137a201231b8f6381938282675eb9abb50ab3b389reed@google.comprivate: 4237a201231b8f6381938282675eb9abb50ab3b389reed@google.com typedef SkShader INHERITED; 4337a201231b8f6381938282675eb9abb50ab3b389reed@google.com}; 4437a201231b8f6381938282675eb9abb50ab3b389reed@google.com 4537a201231b8f6381938282675eb9abb50ab3b389reed@google.com#endif 46