Overte C++ Documentation
ShaderCache.h
1 //
2 // Created by Bradley Austin Davis on 2015/05/26
3 // Copyright 2015 High Fidelity, Inc.
4 //
5 // Distributed under the Apache License, Version 2.0.
6 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
7 //
8 #pragma once
9 #ifndef hifi_ShaderCache_h
10 #define hifi_ShaderCache_h
11 
12 #include <QtCore/QSharedPointer>
13 #include <ResourceCache.h>
14 
15 class NetworkShader : public Resource {
16 public:
17  NetworkShader(const QUrl& url);
18  NetworkShader(const NetworkShader& other) : Resource(other), _source(other._source) {}
19 
20  QString getType() const override { return "NetworkShader"; }
21 
22  virtual void downloadFinished(const QByteArray& data) override;
23 
24  QString _source;
25 };
26 
27 using NetworkShaderPointer = QSharedPointer<NetworkShader>;
28 
29 class ShaderCache : public ResourceCache {
30 public:
31  static ShaderCache& instance();
32 
33  NetworkShaderPointer getShader(const QUrl& url);
34 
35 protected:
36  virtual QSharedPointer<Resource> createResource(const QUrl& url) override;
37  QSharedPointer<Resource> createResourceCopy(const QSharedPointer<Resource>& resource) override;
38 };
39 
40 #endif
Base class for resource caches.
Definition: ResourceCache.h:196
Base class for resources.
Definition: ResourceCache.h:409