Minetest 5.9.0-dev
 
Loading...
Searching...
No Matches
texturesource.h
Go to the documentation of this file.
1/*
2Minetest
3Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4
5This program is free software; you can redistribute it and/or modify
6it under the terms of the GNU Lesser General Public License as published by
7the Free Software Foundation; either version 2.1 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU Lesser General Public License for more details.
14
15You should have received a copy of the GNU Lesser General Public License along
16with this program; if not, write to the Free Software Foundation, Inc.,
1751 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18*/
19
20#pragma once
21
22#include "irrlichttypes.h"
23#include <ITexture.h>
24#include <string>
25#include <vector>
26
27typedef std::vector<video::SColor> Palette;
28
29/*
30 TextureSource creates and caches textures.
31*/
32
34{
35public:
37
38 virtual ~ISimpleTextureSource() = default;
39
40 virtual video::ITexture* getTexture(
41 const std::string &name, u32 *id = nullptr) = 0;
42};
43
45{
46public:
47 ITextureSource() = default;
48
49 virtual ~ITextureSource() = default;
50
51 virtual u32 getTextureId(const std::string &name)=0;
52 virtual std::string getTextureName(u32 id)=0;
53 virtual video::ITexture* getTexture(u32 id)=0;
54 virtual video::ITexture* getTexture(
55 const std::string &name, u32 *id = nullptr)=0;
56 virtual video::ITexture* getTextureForMesh(
57 const std::string &name, u32 *id = nullptr) = 0;
64 virtual Palette* getPalette(const std::string &name) = 0;
65 virtual bool isKnownSourceImage(const std::string &name)=0;
66 virtual video::ITexture* getNormalTexture(const std::string &name)=0;
67 virtual video::SColor getTextureAverageColor(const std::string &name)=0;
68 virtual video::ITexture *getShaderFlagsTexture(bool normalmap_present)=0;
69};
70
72{
73public:
75
76 virtual ~IWritableTextureSource() = default;
77
78 virtual u32 getTextureId(const std::string &name)=0;
79 virtual std::string getTextureName(u32 id)=0;
80 virtual video::ITexture* getTexture(u32 id)=0;
81 virtual video::ITexture* getTexture(
82 const std::string &name, u32 *id = nullptr)=0;
83 virtual bool isKnownSourceImage(const std::string &name)=0;
84
85 virtual void processQueue()=0;
86 virtual void insertSourceImage(const std::string &name, video::IImage *img)=0;
87 virtual void rebuildImagesAndTextures()=0;
88 virtual video::ITexture* getNormalTexture(const std::string &name)=0;
89 virtual video::SColor getTextureAverageColor(const std::string &name)=0;
90 virtual video::ITexture *getShaderFlagsTexture(bool normalmap_present)=0;
91};
92
Definition: texturesource.h:34
virtual ~ISimpleTextureSource()=default
virtual video::ITexture * getTexture(const std::string &name, u32 *id=nullptr)=0
ISimpleTextureSource()=default
Definition: texturesource.h:45
ITextureSource()=default
virtual video::ITexture * getTexture(u32 id)=0
virtual std::string getTextureName(u32 id)=0
virtual u32 getTextureId(const std::string &name)=0
virtual video::ITexture * getTexture(const std::string &name, u32 *id=nullptr)=0
virtual video::ITexture * getShaderFlagsTexture(bool normalmap_present)=0
virtual Palette * getPalette(const std::string &name)=0
virtual ~ITextureSource()=default
virtual video::SColor getTextureAverageColor(const std::string &name)=0
virtual video::ITexture * getTextureForMesh(const std::string &name, u32 *id=nullptr)=0
virtual video::ITexture * getNormalTexture(const std::string &name)=0
virtual bool isKnownSourceImage(const std::string &name)=0
Definition: texturesource.h:72
virtual video::SColor getTextureAverageColor(const std::string &name)=0
virtual video::ITexture * getShaderFlagsTexture(bool normalmap_present)=0
virtual void insertSourceImage(const std::string &name, video::IImage *img)=0
IWritableTextureSource()=default
virtual std::string getTextureName(u32 id)=0
virtual video::ITexture * getTexture(u32 id)=0
virtual u32 getTextureId(const std::string &name)=0
virtual void processQueue()=0
virtual bool isKnownSourceImage(const std::string &name)=0
virtual video::ITexture * getNormalTexture(const std::string &name)=0
virtual video::ITexture * getTexture(const std::string &name, u32 *id=nullptr)=0
virtual ~IWritableTextureSource()=default
virtual void rebuildImagesAndTextures()=0
std::vector< video::SColor > Palette
Definition: texturesource.h:27
IWritableTextureSource * createTextureSource()
Definition: texturesource.cpp:184