# TK_Custom_Shader_Texture

## Functions

| `TK_Custom_Shader_Texture`
| `~TK_Custom_Shader_Texture`
`TK_Status` | `Read`
`TK_Status` | `Write`
`TK_Status` | `Clone`
`TK_Status` | `ReadAscii`
`TK_Status` | `WriteAscii`
void | `Reset`
void | `SetName`
void | `SetName`
void | `SetWidth`
void | `SetHeight`
void | `SetDepth`
void | `SetMipmapLevels`
void | `SetFormat`
bool | `GetFormatEnum`
bool | `GetFormatString`
void | `SetData`
void | `SetData`
void | `SetOptions`
void | `SetOptions`

## Detailed Description

class TK_Custom_Shader_Texture : public BBaseOpcodeHandler

  Handles the TKE_Custom_Shader_Texture opcode.

  TK_Custom_Shader_Texture provides support for writing/reading the TKE_Custom_Shader_Texture opcode object to/from an HSF file.

  The HOOPS/3dGS scene-graph supports custom shader texture.

  Subclassed by HTK_Custom_Shader_Texture

  Public Functions

  TK_Custom_Shader_Texture()

    constructor

  ~TK_Custom_Shader_Texture()
  virtual TK_Status Read(BStreamFileToolkit &tk)

    Reads data from the toolkit buffer, decodes/decompresses it, and maps it to the opcode handlers data members. User-defined classes which need to write out custom data should utilize one of the available GetData() methods.

    Parameters

      tk – A reference to the BStreamFileToolkit object.

    Returns

      The result of the function call.

  virtual TK_Status Write(BStreamFileToolkit &tk)

    Encodes/compresses data and writes data to the toolkit buffer. User-defined classes which need to write out custom data should utilize one of the available PutData() methods, and first write out the opcode associated with the group of binary data followed by the data itself.

    Parameters

      tk – A reference to the BStreamFileToolkit object.

    Returns

      The result of the function call.

  virtual TK_Status Clone(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const

    Copies the opcode handler

    Parameters

      - tk – A reference to the BStreamFileToolkit object.

      - handler – A pointer to the opcode handler object. Passed by reference.

    Returns

      The result of the function call.

  TK_Status ReadAscii(BStreamFileToolkit &tk)

    Deprecated.

  TK_Status WriteAscii(BStreamFileToolkit &tk)

    Deprecated.

  virtual void Reset()

    Resets the current opcode handler. This is called by the toolkit when it is done processing an opcode. This method reinitializes any opcode handler variables and frees up temporary data.

  void SetName(char const *name)

    Sets the texture name. Allocates the buffer and copies the texture name string

  void SetName(int length)

    Sets the texture name buffer. Allocates a buffer large enough to hold a string of ‘length’ characters

  void SetWidth(int value)

    Sets the texture width

  void SetHeight(int value)

    Sets the texture height

  void SetDepth(int value)

    Sets the texture depth

  void SetMipmapLevels(int value)

    Sets the texture mipmap levels

  void SetFormat(int format)

    Sets the texture format.

  bool GetFormatEnum(char const *format, TKO_Custom_Shader_Texture_Format &format_enum)

    Gets the format enum

  bool GetFormatString(TKO_Custom_Shader_Texture_Format format_enum, char *format)

    Gets the format string

  void SetData(unsigned char const *data, int length)

    Sets the texture data

  void SetData(int length)

    Sets the texture data length

  void SetOptions(char const *options)

    Sets the texture options. Allocates the buffer and copies the texture options string

  void SetOptions(int length)

    Sets the texture options buffer. Allocates a buffer large enough to hold a string of ‘length’ characters