1//************************************ bs::framework - Copyright 2018 Marko Pintera **************************************//
2//*********** Licensed under the MIT license. See LICENSE.md for full terms. This notice is not to be removed. ***********//
3#pragma once
4
5#include "BsGLPrerequisites.h"
6#include "Managers/BsGpuProgramManager.h"
7
8namespace bs { namespace ct
9{
10 /** @addtogroup GL
11 * @{
12 */
13
14 /** Factory class that deals with creating GLSL GPU programs. */
15 class GLSLProgramFactory : public GpuProgramFactory
16 {
17 public:
18 /** @copydoc GpuProgramFactory::create(const GPU_PROGRAM_DESC&, GpuDeviceFlags) */
19 SPtr<GpuProgram> create(const GPU_PROGRAM_DESC& desc, GpuDeviceFlags deviceMask = GDF_DEFAULT) override;
20
21 /** @copydoc GpuProgramFactory::create(GpuProgramType, GpuDeviceFlags) */
22 SPtr<GpuProgram> create(GpuProgramType type, GpuDeviceFlags deviceMask = GDF_DEFAULT) override;
23
24 /** @copydoc GpuProgramFactory::compileBytecode(const GPU_PROGRAM_DESC&) */
25 SPtr<GpuProgramBytecode> compileBytecode(const GPU_PROGRAM_DESC& desc) override;
26 protected:
27 static const String LANGUAGE_NAME;
28 };
29
30 /** @} */
31}}