globjects  2.0.0.630135941c42
Strict OpenGL objects wrapper.
Loading...
Searching...
No Matches
CompositeStringSource.h
Go to the documentation of this file.
1
2#pragma once
3
4
5#include <string>
6#include <vector>
7
8#include <globjects/globjects_api.h>
9
12
13
14namespace globjects
15{
16
17
18class GLOBJECTS_API CompositeStringSource : public AbstractStringSource, public Instantiator<CompositeStringSource>
19{
20public:
22 CompositeStringSource(const std::vector<AbstractStringSource *> & sources);
23
25
27
28 virtual std::string string() const override;
29 virtual std::vector<std::string> strings() const override;
30
31 virtual void flattenInto(std::vector<const AbstractStringSource *> & vector) const override;
32
35
36 virtual std::string shortInfo() const override;
37protected:
38
39 virtual void notifyChanged(const AbstractStringSource * changeable) override;
40
41 void update() const;
42
43protected:
44 std::vector<AbstractStringSource *> m_sources;
45
46 mutable bool m_dirty;
47 mutable std::vector<std::string> m_strings;
48};
49
50
51} // namespace globjects
Superclass for all types of static and dynamic strings, e.g. for the use as Shader code.
Definition AbstractStringSource.h:27
Definition CompositeStringSource.h:19
virtual std::string shortInfo() const override
virtual void flattenInto(std::vector< const AbstractStringSource * > &vector) const override
std::vector< std::string > m_strings
Definition CompositeStringSource.h:47
virtual void notifyChanged(const AbstractStringSource *changeable) override
virtual std::string string() const override
bool m_dirty
Definition CompositeStringSource.h:46
void appendSource(AbstractStringSource *source)
void addSubject(AbstractStringSource *subject)
virtual std::vector< std::string > strings() const override
std::vector< AbstractStringSource * > m_sources
Definition CompositeStringSource.h:44
void removeSubject(AbstractStringSource *subject)
CompositeStringSource(const std::vector< AbstractStringSource * > &sources)
CRTP for creating objects similar to std::make_unique.
Definition Instantiator.h:22
Contains all the classes that wrap OpenGL functionality.