You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.4 KiB
53 lines
1.4 KiB
//========= Copyright Valve Corporation, All rights reserved. ================================== // |
|
// |
|
// Purpose: Defines a texture compositor infterface which uses simple operations and shaders to |
|
// create complex procedural textures. |
|
// |
|
//============================================================================================== // |
|
|
|
#ifndef ITEXTURECOMPOSITOR_H |
|
#define ITEXTURECOMPOSITOR_H |
|
#pragma once |
|
|
|
#include "interface.h" |
|
#include "itexture.h" |
|
|
|
#define ITEXTURE_COMPOSITOR_INTERFACE_VERSION "_ITextureCompositor000" |
|
|
|
enum ECompositeResolveStatus |
|
{ |
|
ECRS_Idle, |
|
ECRS_Scheduled, |
|
ECRS_PendingTextureLoads, |
|
ECRS_PendingComposites, |
|
ECRS_Error, |
|
ECRS_Complete |
|
}; |
|
|
|
enum TextureCompositeCreateFlags_t |
|
{ |
|
TEX_COMPOSITE_CREATE_FLAGS_FORCE = 0x00000001, |
|
TEX_COMPOSITE_CREATE_FLAGS_NO_COMPRESSION = 0x00000002, |
|
TEX_COMPOSITE_CREATE_FLAGS_NO_MIPMAPS = 0x00000004, |
|
TEX_COMPOSITE_CREATE_FLAGS_VERIFY_SCHEMA_ONLY = 0x00000008, |
|
TEX_COMPOSITE_CREATE_FLAGS_VERIFY_TEMPLATE_ONLY = 0x00000010, |
|
TEX_COMPOSITE_CREATE_FLAGS_LOG_NODES_ONLY = 0x00000020 |
|
}; |
|
|
|
abstract_class ITextureCompositor |
|
{ |
|
public: |
|
virtual int AddRef() = 0; |
|
virtual int Release() = 0; |
|
virtual int GetRefCount() const = 0; |
|
|
|
virtual void Update() = 0; |
|
virtual ITexture* GetResultTexture() const = 0; |
|
virtual ECompositeResolveStatus GetResolveStatus() const = 0; |
|
virtual void ScheduleResolve() = 0; |
|
protected: |
|
virtual ~ITextureCompositor() {} |
|
}; |
|
|
|
|
|
#endif /* ITEXTURECOMPOSITOR_H */
|
|
|