| Index: gpu/tools/compositor_model_bench/render_tree.h
|
| ===================================================================
|
| --- gpu/tools/compositor_model_bench/render_tree.h (revision 98709)
|
| +++ gpu/tools/compositor_model_bench/render_tree.h (working copy)
|
| @@ -1,218 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -// Data structures for representing parts of Chromium's composited layer tree
|
| -// and a function to load it from the JSON configuration file
|
| -
|
| -#ifndef GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_TREE_H_
|
| -#define GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_TREE_H_
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/compiler_specific.h"
|
| -#include "base/memory/scoped_vector.h"
|
| -#include "gpu/tools/compositor_model_bench/shaders.h"
|
| -#include "ui/gfx/gl/gl_bindings.h"
|
| -#include "ui/gfx/gl/gl_implementation.h"
|
| -
|
| -// These are fairly arbitrary values based on how big my actual browser
|
| -// window was.
|
| -const int WINDOW_WIDTH = 1609;
|
| -const int WINDOW_HEIGHT = 993;
|
| -
|
| -struct Tile {
|
| - int x;
|
| - int y;
|
| - int texID;
|
| -};
|
| -
|
| -struct Texture {
|
| - int texID;
|
| - int height;
|
| - int width;
|
| - GLenum format;
|
| -};
|
| -
|
| -GLenum TextureFormatFromString(std::string format);
|
| -const char* TextureFormatName(GLenum format);
|
| -int FormatBytesPerPixel(GLenum format);
|
| -
|
| -struct RenderNodeVisitor;
|
| -
|
| -class RenderNode {
|
| - public:
|
| - RenderNode() {}
|
| - virtual ~RenderNode() {}
|
| - virtual void Accept(RenderNodeVisitor* v);
|
| -
|
| - int layerID() {
|
| - return layerID_;
|
| - }
|
| -
|
| - void set_layerID(int id) {
|
| - layerID_ = id;
|
| - }
|
| -
|
| - int width() {
|
| - return width_;
|
| - }
|
| -
|
| - void set_width(int width) {
|
| - width_ = width;
|
| - }
|
| -
|
| - int height() {
|
| - return height_;
|
| - }
|
| -
|
| - void set_height(int height) {
|
| - height_ = height;
|
| - }
|
| -
|
| - bool drawsContent() {
|
| - return drawsContent_;
|
| - }
|
| -
|
| - void set_drawsContent(bool draws) {
|
| - drawsContent_ = draws;
|
| - }
|
| -
|
| - void set_targetSurface(int surface) {
|
| - targetSurface_ = surface;
|
| - }
|
| -
|
| - float* transform() {
|
| - return transform_;
|
| - }
|
| -
|
| - void set_transform(float* mat) {
|
| - memcpy(reinterpret_cast<void*>(transform_),
|
| - reinterpret_cast<void*>(mat),
|
| - 16 * sizeof(transform_[0]));
|
| - }
|
| -
|
| - void add_tile(Tile t) {
|
| - tiles_.push_back(t);
|
| - }
|
| -
|
| - size_t num_tiles() {
|
| - return tiles_.size();
|
| - }
|
| -
|
| - Tile* tile(size_t index) {
|
| - return &tiles_[index];
|
| - }
|
| -
|
| - int tile_width() {
|
| - return tile_width_;
|
| - }
|
| -
|
| - void set_tile_width(int width) {
|
| - tile_width_ = width;
|
| - }
|
| -
|
| - int tile_height() {
|
| - return tile_height_;
|
| - }
|
| -
|
| - void set_tile_height(int height) {
|
| - tile_height_ = height;
|
| - }
|
| -
|
| - private:
|
| - int layerID_;
|
| - int width_;
|
| - int height_;
|
| - bool drawsContent_;
|
| - int targetSurface_;
|
| - float transform_[16];
|
| - std::vector<Tile> tiles_;
|
| - int tile_width_;
|
| - int tile_height_;
|
| -};
|
| -
|
| -class ContentLayerNode : public RenderNode {
|
| - public:
|
| - ContentLayerNode() {}
|
| - virtual void Accept(RenderNodeVisitor* v) OVERRIDE;
|
| -
|
| - void set_skipsDraw(bool skips) {
|
| - skipsDraw_ = skips;
|
| - }
|
| -
|
| - void add_child(RenderNode* child) {
|
| - children_.push_back(child);
|
| - }
|
| -
|
| - private:
|
| - ScopedVector<RenderNode> children_;
|
| - bool skipsDraw_;
|
| -};
|
| -
|
| -class CCNode : public RenderNode {
|
| - public:
|
| - CCNode() {}
|
| -
|
| - virtual void Accept(RenderNodeVisitor* v) OVERRIDE;
|
| -
|
| - ShaderID vertex_shader() {
|
| - return vertex_shader_;
|
| - }
|
| -
|
| - void set_vertex_shader(ShaderID shader) {
|
| - vertex_shader_ = shader;
|
| - }
|
| -
|
| - ShaderID fragment_shader() {
|
| - return fragment_shader_;
|
| - }
|
| -
|
| - void set_fragment_shader(ShaderID shader) {
|
| - fragment_shader_ = shader;
|
| - }
|
| -
|
| - void add_texture(Texture t) {
|
| - textures_.push_back(t);
|
| - }
|
| -
|
| - size_t num_textures() {
|
| - return textures_.size();
|
| - }
|
| -
|
| - Texture* texture(size_t index) {
|
| - return &textures_[index];
|
| - }
|
| -
|
| - private:
|
| - ShaderID vertex_shader_;
|
| - ShaderID fragment_shader_;
|
| - std::vector<Texture> textures_;
|
| -};
|
| -
|
| -class RenderNodeVisitor {
|
| - public:
|
| - virtual ~RenderNodeVisitor() {}
|
| -
|
| - virtual void BeginVisitRenderNode(RenderNode* v) = 0;
|
| - virtual void BeginVisitContentLayerNode(ContentLayerNode* v) {
|
| - this->BeginVisitRenderNode(v);
|
| - }
|
| - virtual void BeginVisitCCNode(CCNode* v) {
|
| - this->BeginVisitRenderNode(v);
|
| - }
|
| -
|
| - virtual void EndVisitRenderNode(RenderNode* v) {}
|
| - virtual void EndVisitContentLayerNode(ContentLayerNode* v) {
|
| - this->EndVisitRenderNode(v);
|
| - }
|
| - virtual void EndVisitCCNode(CCNode* v) {
|
| - this->EndVisitRenderNode(v);
|
| - }
|
| -};
|
| -
|
| -RenderNode* BuildRenderTreeFromFile(const FilePath& path);
|
| -
|
| -#endif // GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_TREE_H_
|
| -
|
|
|