Merge remote-tracking branch 'origin/master' into Resource-Update
Conflicts: include/Nazara/Audio/Music.hpp include/Nazara/Audio/SoundBuffer.hpp include/Nazara/Core/Resource.hpp include/Nazara/Core/ResourceListener.hpp include/Nazara/Graphics/Material.hpp include/Nazara/Renderer/Context.hpp include/Nazara/Renderer/RenderBuffer.hpp include/Nazara/Renderer/Shader.hpp include/Nazara/Renderer/Texture.hpp include/Nazara/Renderer/UberShader.hpp include/Nazara/Utility/Animation.hpp include/Nazara/Utility/Buffer.hpp include/Nazara/Utility/Image.hpp include/Nazara/Utility/IndexBuffer.hpp include/Nazara/Utility/Mesh.hpp include/Nazara/Utility/SkeletalMesh.hpp include/Nazara/Utility/Skeleton.hpp include/Nazara/Utility/StaticMesh.hpp include/Nazara/Utility/SubMesh.hpp include/Nazara/Utility/VertexBuffer.hpp include/Nazara/Utility/VertexDeclaration.hpp src/Nazara/Core/Resource.cpp src/Nazara/Core/ResourceListener.cpp src/Nazara/Graphics/DeferredRenderQueue.cpp src/Nazara/Graphics/ForwardRenderQueue.cpp src/Nazara/Graphics/SkinningManager.cpp src/Nazara/Renderer/RenderTexture.cpp src/Nazara/Renderer/Renderer.cpp src/Nazara/Utility/Mesh.cpp Former-commit-id: 99b5ad26a19fe9c9f8118da7b5920bffe89f60f8
This commit is contained in:
75
include/Nazara/Graphics/TextSprite.hpp
Normal file
75
include/Nazara/Graphics/TextSprite.hpp
Normal file
@@ -0,0 +1,75 @@
|
||||
// Copyright (C) 2015 Jérôme Leclercq
|
||||
// This file is part of the "Nazara Engine - Graphics module"
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef NAZARA_TEXTSPRITE_HPP
|
||||
#define NAZARA_TEXTSPRITE_HPP
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Graphics/Material.hpp>
|
||||
#include <Nazara/Graphics/SceneNode.hpp>
|
||||
#include <Nazara/Utility/AbstractAtlas.hpp>
|
||||
#include <Nazara/Utility/AbstractTextDrawer.hpp>
|
||||
#include <Nazara/Utility/VertexStruct.hpp>
|
||||
#include <memory>
|
||||
#include <set>
|
||||
|
||||
class NAZARA_API NzTextSprite : public NzSceneNode, NzAbstractAtlas::Listener
|
||||
{
|
||||
public:
|
||||
NzTextSprite();
|
||||
NzTextSprite(const NzTextSprite& sprite);
|
||||
~NzTextSprite();
|
||||
|
||||
void AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const override;
|
||||
|
||||
void Clear();
|
||||
|
||||
NzTextSprite* Clone() const;
|
||||
NzTextSprite* Create() const;
|
||||
|
||||
const NzColor& GetColor() const;
|
||||
NzMaterial* GetMaterial() const;
|
||||
nzSceneNodeType GetSceneNodeType() const override;
|
||||
|
||||
void InvalidateVertices();
|
||||
bool IsDrawable() const;
|
||||
|
||||
void SetColor(const NzColor& color);
|
||||
void SetDefaultMaterial();
|
||||
void SetMaterial(NzMaterial* material);
|
||||
|
||||
void Update(const NzAbstractTextDrawer& drawer);
|
||||
|
||||
NzTextSprite& operator=(const NzTextSprite& text);
|
||||
|
||||
private:
|
||||
void ClearAtlases();
|
||||
void InvalidateNode() override;
|
||||
void MakeBoundingVolume() const override;
|
||||
bool OnAtlasCleared(const NzAbstractAtlas* atlas, void* userdata) override;
|
||||
bool OnAtlasLayerChange(const NzAbstractAtlas* atlas, NzAbstractImage* oldLayer, NzAbstractImage* newLayer, void* userdata) override;
|
||||
void OnAtlasReleased(const NzAbstractAtlas* atlas, void* userdata) override;
|
||||
void Register() override;
|
||||
void Unregister() override;
|
||||
void UpdateVertices() const;
|
||||
|
||||
struct RenderIndices
|
||||
{
|
||||
unsigned int first;
|
||||
unsigned int count;
|
||||
};
|
||||
|
||||
std::set<const NzAbstractAtlas*> m_atlases;
|
||||
mutable std::unordered_map<NzTexture*, RenderIndices> m_renderInfos;
|
||||
mutable std::vector<NzVertexStruct_XY_Color> m_localVertices;
|
||||
mutable std::vector<NzVertexStruct_XYZ_Color_UV> m_vertices;
|
||||
NzColor m_color;
|
||||
NzMaterialRef m_material;
|
||||
NzRectui m_localBounds;
|
||||
mutable bool m_verticesUpdated;
|
||||
};
|
||||
|
||||
#endif // NAZARA_TEXTSPRITE_HPP
|
||||
Reference in New Issue
Block a user