blob: 61c50e10eb0671327e7a58637ebc117864d782f0 [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef GARNET_LIB_UI_GFX_RESOURCES_RESOURCE_VISITOR_H_
#define GARNET_LIB_UI_GFX_RESOURCES_RESOURCE_VISITOR_H_
namespace scenic_impl {
namespace gfx {
class Import;
class Memory;
class Image;
class ImagePipe;
class Buffer;
class View;
class ViewHolder;
class EntityNode;
class OpacityNode;
class ShapeNode;
class Scene;
class CircleShape;
class RectangleShape;
class RoundedRectangleShape;
class MeshShape;
class Material;
class Compositor;
class DisplayCompositor;
class LayerStack;
class Layer;
class Camera;
class Renderer;
class Scene;
class Light;
class AmbientLight;
class DirectionalLight;
class PointLight;
class ResourceVisitor {
public:
// Memory resources.
virtual void Visit(Memory* r) = 0;
virtual void Visit(Image* r) = 0;
virtual void Visit(ImagePipe* r) = 0;
virtual void Visit(Buffer* r) = 0;
// Views.
virtual void Visit(View* r) = 0;
virtual void Visit(ViewHolder* r) = 0;
// Nodes.
virtual void Visit(EntityNode* r) = 0;
virtual void Visit(OpacityNode* r) = 0;
virtual void Visit(ShapeNode* r) = 0;
// Shapes.
virtual void Visit(CircleShape* r) = 0;
virtual void Visit(RectangleShape* r) = 0;
virtual void Visit(RoundedRectangleShape* r) = 0;
virtual void Visit(MeshShape* r) = 0;
// Materials.
virtual void Visit(Material* r) = 0;
// Layers.
virtual void Visit(Compositor* r) = 0;
virtual void Visit(DisplayCompositor* r) = 0;
virtual void Visit(LayerStack* r) = 0;
virtual void Visit(Layer* r) = 0;
// Scene, camera, lighting.
virtual void Visit(Scene* r) = 0;
virtual void Visit(Camera* r) = 0;
virtual void Visit(Renderer* r) = 0;
virtual void Visit(Light* r) = 0;
virtual void Visit(AmbientLight* r) = 0;
virtual void Visit(DirectionalLight* r) = 0;
virtual void Visit(PointLight* r) = 0;
// Imported resources.
virtual void Visit(Import* r) = 0;
};
} // namespace gfx
} // namespace scenic_impl
#endif // GARNET_LIB_UI_GFX_RESOURCES_RESOURCE_VISITOR_H_