globjects  1.0.0.000000000000
Strict OpenGL objects wrapper.
StringTemplate.h
Go to the documentation of this file.
1
2#pragma once
3
4#include <string>
5#include <map>
6
7#include <globjects/globjects_api.h>
8
10
11
12namespace globjects
13{
14
15
16class GLOBJECTS_API StringTemplate : public StringSourceDecorator
17{
18public:
20
21 virtual std::string string() const override;
22 virtual void update() override;
23
24 void replace(const std::string & original, const std::string & str);
25 void replace(const std::string & original, int i);
26
28
29protected:
30 mutable std::string m_modifiedSource;
32
33 std::map<std::string, std::string> m_replacements;
34
35 virtual ~StringTemplate();
36
37 void invalidate();
38 std::string modifiedSource() const;
39};
40
41
42} // namespace globjects
Superclass for all types of static and dynamic strings, e.g. for the use as Shader code.
Definition: AbstractStringSource.h:26
Definition: StringSourceDecorator.h:16
Definition: StringTemplate.h:17
void replace(const std::string &original, int i)
std::map< std::string, std::string > m_replacements
Definition: StringTemplate.h:33
bool m_modifiedSourceValid
Definition: StringTemplate.h:31
virtual std::string string() const override
std::string modifiedSource() const
StringTemplate(AbstractStringSource *source)
std::string m_modifiedSource
Definition: StringTemplate.h:30
void replace(const std::string &original, const std::string &str)
virtual void update() override
Contains all the classes that wrap OpenGL functionality.