blob: e7c9c8951e3511853d7ff4413eb69f2a40b56596 [file] [log] [blame]
/* include/graphics/SkGraphics.h
**
** Copyright 2006, Google Inc.
**
** 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.
*/
#ifndef SkGraphics_DEFINED
#define SkGraphics_DEFINED
#include "SkTypes.h"
class SkGraphics {
public:
static void Init(bool runUnitTests);
static void Term();
/** Call this if the heap that the graphics engine uses is low on memory.
It will attempt to free some of its caches. Returns true if it was
able to, or false if it could do nothing.
This may be called from any thread, and guarantees not to call
new or sk_malloc (though it will hopefully call delete and/or sk_free).
It also will never throw an exception.
*/
static bool FreeCaches(size_t bytesNeeded);
private:
/** This is automatically called by SkGraphics::Init(), and must be
implemented by the host OS. This allows the host OS to register a callback
with the C++ runtime to call SkGraphics::FreeCaches()
*/
static void InstallNewHandler();
};
#endif