globjects  2.0.0.4363356ae2ef
Strict OpenGL objects wrapper.
Loading...
Searching...
No Matches
AbstractStringSource.h
Go to the documentation of this file.
1
2#pragma once
3
4
5#include <set>
6#include <string>
7#include <vector>
8
9#include <globjects/globjects_api.h>
10
11
12namespace globjects
13{
14
15
16class Shader;
17class NamedString;
18
19
26class GLOBJECTS_API AbstractStringSource
27{
28public:
31
32 virtual std::string string() const = 0;
33 virtual std::vector<std::string> strings() const;
34
35 std::vector<const AbstractStringSource*> flatten() const;
36 virtual void flattenInto(std::vector<const AbstractStringSource*> & vector) const;
37
38 virtual std::string shortInfo() const;
39
40 void changed() const;
41
44
45 void registerListener(Shader * listener);
46 void deregisterListener(Shader * listener);
47
48 void registerListener(NamedString * listener);
50
53
54
55protected:
56 virtual void notifyChanged(const AbstractStringSource * sender);
57
58
59protected:
60 std::set<AbstractStringSource *> m_sourceListener;
61 std::set<Shader *> m_shaderListener;
62 std::set<NamedString *> m_namedStringListener;
63 std::set<AbstractStringSource*> m_subjects;
64};
65
66
67} // namespace globjects
Superclass for all types of static and dynamic strings, e.g. for the use as Shader code.
Definition: AbstractStringSource.h:27
void deregisterListener(NamedString *listener)
void registerListener(Shader *listener)
void removeSubject(AbstractStringSource *subject)
void deregisterListener(Shader *listener)
virtual void notifyChanged(const AbstractStringSource *sender)
void deregisterListener(AbstractStringSource *listener)
virtual std::string shortInfo() const
std::vector< const AbstractStringSource * > flatten() const
void registerListener(NamedString *listener)
virtual void flattenInto(std::vector< const AbstractStringSource * > &vector) const
std::set< AbstractStringSource * > m_subjects
Definition: AbstractStringSource.h:63
void addSubject(AbstractStringSource *subject)
virtual std::vector< std::string > strings() const
std::set< Shader * > m_shaderListener
Definition: AbstractStringSource.h:61
virtual std::string string() const =0
std::set< NamedString * > m_namedStringListener
Definition: AbstractStringSource.h:62
void registerListener(AbstractStringSource *listener)
std::set< AbstractStringSource * > m_sourceListener
Definition: AbstractStringSource.h:60
Definition: NamedString.h:24
Encapsulates OpenGL shaders.
Definition: Shader.h:44
Contains all the classes that wrap OpenGL functionality.