CAST II Game Engine

   DESCRIPTION       FEATURES       SCREENSHOTS       FORUMS       DOCUMENTATION       DOWNLOADS       CONTACTS   
Units
Class Hierarchy
Classes, Interfaces and Objects
Types
Enumerations
Variables
Constants
Functions and Procedures
Identifiers

Class TAPIBuffers

Unit

C2Render

Declaration

type TAPIBuffers = class

Description

API-specific vertex and index buffers management class

Fields

 NameDescription
ProtectedRendererReference to renderer object

Methods

Overview

Publicconstructor Create(ARenderer: TRenderer);
Publicdestructor Destroy; override;
Publicfunction AttachIndexBuffer(Index: Integer; StartingVertex: Integer): Boolean; virtual; abstract;
Publicfunction AttachVertexBuffer(Index, StreamIndex: Integer; VertexSize: Integer): Boolean; virtual; abstract;
Publicprocedure Clear; virtual; abstract;
Publicfunction CreateIndexBuffer(Size: Integer; Static: Boolean): Integer; virtual; abstract;
Publicfunction CreateVertexBuffer(Size: Integer; Static: Boolean): Integer; virtual; abstract;
Publicfunction GetFVF(CastVertexFormat: Cardinal): Cardinal; virtual; abstract;
Publicfunction LockIndexBuffer(Index: Integer; Offset, Size: Integer; DiscardExisting: Boolean): Pointer; virtual; abstract;
Publicfunction LockVertexBuffer(Index: Integer; Offset, Size: Integer; DiscardExisting: Boolean): Pointer; virtual; abstract;
Publicfunction ResizeIndexBuffer(Index: Integer; NewSize: Integer): Boolean; virtual; abstract;
Publicfunction ResizeVertexBuffer(Index: Integer; NewSize: Integer): Boolean; virtual; abstract;
Publicprocedure UnlockIndexBuffer(Index: Integer); virtual; abstract;
Publicprocedure UnlockVertexBuffer(Index: Integer); virtual; abstract;

Description

Publicconstructor Create(ARenderer: TRenderer);

 

Publicdestructor Destroy; override;

 

Publicfunction AttachIndexBuffer(Index: Integer; StartingVertex: Integer): Boolean; virtual; abstract;

Attaches an index buffer and returns True if success. StartingVertex will be added to all indices read from the index buffer.

Publicfunction AttachVertexBuffer(Index, StreamIndex: Integer; VertexSize: Integer): Boolean; virtual; abstract;

Attaches a vertex buffer to the specified data stream and returns True if success. VertexSize should match the size of the data in the buffer.

Publicprocedure Clear; virtual; abstract;

Frees all allocated buffers. All internal indices returned before this call become invalid.

Publicfunction CreateIndexBuffer(Size: Integer; Static: Boolean): Integer; virtual; abstract;

Creates an index buffer with the given size in bytes and returns its internal index or -1 if creation fails If Static is False the buffer will be optimized to store dynamic data.

Publicfunction CreateVertexBuffer(Size: Integer; Static: Boolean): Integer; virtual; abstract;

Creates a vertex buffer with the given size in bytes and returns its internal index or -1 if creation fails. If Static is False the buffer will be optimized to store dynamic geometry.

Publicfunction GetFVF(CastVertexFormat: Cardinal): Cardinal; virtual; abstract;

Returns a flexible vrtex format code from CAST vertex format

Publicfunction LockIndexBuffer(Index: Integer; Offset, Size: Integer; DiscardExisting: Boolean): Pointer; virtual; abstract;

Locks the given range in a index buffer with the given index and returns a write-only pointer to the range data or nil if lock fails. If DiscardExisting is True existing data in the buffer will be discarded to avoid stalls.

Publicfunction LockVertexBuffer(Index: Integer; Offset, Size: Integer; DiscardExisting: Boolean): Pointer; virtual; abstract;

Locks the given range in a vertex buffer with the given index and returns a write-only pointer to the range data or nil if lock fails. If DiscardExisting is True existing data in the buffer will be discarded to avoid stalls.

Publicfunction ResizeIndexBuffer(Index: Integer; NewSize: Integer): Boolean; virtual; abstract;

Changes size of the given index buffer to the given size and returns True if success

Publicfunction ResizeVertexBuffer(Index: Integer; NewSize: Integer): Boolean; virtual; abstract;

Changes size of the given vertex buffer to the given size and returns True if success

Publicprocedure UnlockIndexBuffer(Index: Integer); virtual; abstract;

Unlocks a previously locked index buffer

Publicprocedure UnlockVertexBuffer(Index: Integer); virtual; abstract;

Unlocks a previously locked vertex buffer

Last modified: 4 Jul, 2008
Copyright (C) 2006-2008, casteng.com