struct CCL::IGraphicsFactory3D

Overview

Factory interface for 3D resources. More…

#include <igraphics3d.h>

struct IGraphicsFactory3D: public CCL::IUnknown
{
    // methods

    virtual IGraphicsShader3D*CCL_API createShader (
        GraphicsShader3DType type,
        UrlRef path
    ) = 0;

    virtual IGraphicsShader3D*CCL_API createStockShader (
        GraphicsShader3DType type,
        StringID name
    ) = 0;

    virtual IVertexFormat3D*CCL_API createVertexFormat (
        const VertexElementDescription description [],
        uint32 count,
        const IGraphicsShader3D* shader
    ) = 0;

    virtual IGraphicsBuffer3D*CCL_API createBuffer (
        GraphicsBuffer3DType type,
        BufferUsage3D usage,
        uint32 sizeInBytes,
        uint32 strideInBytes,
        const void* initialData = nullptr
    ) = 0;

    virtual IGraphicsTexture2D*CCL_API createTexture (
        IBitmap* bitmap,
        TextureFlags3D flags
    ) = 0;

    virtual IGraphicsPipeline3D*CCL_API createPipeline () = 0;
    virtual IShaderParameterSet3D*CCL_API createShaderParameterSet () = 0;
    virtual IShaderBufferWriter3D*CCL_API createShaderBufferWriter () = 0;
};

Inherited Members

public:
    // methods

    virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
    virtual unsigned int CCL_API retain () = 0;
    virtual unsigned int CCL_API release () = 0;

Detailed Documentation

Factory interface for 3D resources.

Methods

virtual IGraphicsTexture2D*CCL_API createTexture (
    IBitmap* bitmap,
    TextureFlags3D flags
) = 0

Create a new texture.

If called multiple times using the same bitmap and the kTextureImmutable flag, this method returns the same instance.