blob: 77f57ecd7f00fd5c1a4ba063a893678d8e46a25f [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
#ifndef EMBEDDERS_OPENGLUI_COMMON_GRAPHICS_HANDLER_H_
#define EMBEDDERS_OPENGLUI_COMMON_GRAPHICS_HANDLER_H_
#include "embedders/openglui/common/isized.h"
#include "embedders/openglui/common/opengl.h"
#include "embedders/openglui/common/support.h"
#include "embedders/openglui/common/timer.h"
class GraphicsHandler : public ISized {
private:
void DecoderHack(int x, SkStream* s);
public:
explicit GraphicsHandler(const char* resource_path);
const int32_t& height() {
return height_;
}
const int32_t& width() {
return width_;
}
void ApplyOrtho(float maxX, float maxY) const;
void ApplyRotation(float degrees) const;
virtual int32_t Start();
virtual void Stop();
void SwapBuffers() {
GLSwapBuffers();
}
virtual int32_t Update();
void SetViewport(int left, int top, int width, int height);
SkCanvas* CreateDisplayCanvas();
SkCanvas* CreateBitmapCanvas(int width, int height);
inline const char* resource_path() {
return resource_path_;
}
virtual ~GraphicsHandler() {
}
protected:
const char* resource_path_;
SkAutoGraphics ag;
GrContext* grcontext;
int32_t width_, height_;
};
extern GraphicsHandler* graphics;
#endif // EMBEDDERS_OPENGLUI_COMMON_GRAPHICS_HANDLER_H_