diff -r 000000000000 -r 6474c204b198 widget/gonk/Framebuffer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/widget/gonk/Framebuffer.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set sw=2 ts=8 et ft=cpp : */ +/* Copyright 2012 Mozilla Foundation and Mozilla contributors + * + * 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. + */ + +class gfxASurface; +class nsIntRegion; +class nsIntSize; + +namespace mozilla { + +namespace Framebuffer { + +// +// The general usage of Framebuffer is +// +// -- in initialization code -- +// Open(); +// +// -- ready to paint next frame -- +// nsRefPtr backBuffer = BackBuffer(); +// // ... +// Paint(backBuffer); +// // ... +// Present(); +// + +// Return true if the fbdev was successfully opened. If this fails, +// the result of all further calls is undefined. Open() is idempotent. +bool Open(); + +// After Close(), the result of all further calls is undefined. +// Close() is idempotent, and Open() can be called again after +// Close(). +void Close(); + +// Return true if the fbdev was successfully opened or the size was +// already cached. +bool GetSize(nsIntSize *aScreenSize); + +// Return the buffer to be drawn into, that will be the next frame. +gfxASurface* BackBuffer(); + +// Swap the front buffer for the back buffer. |aUpdated| is the +// region of the back buffer that was repainted. +void Present(const nsIntRegion& aUpdated); + +} // namespace Framebuffer + +} // namespace mozilla