Unit BGRASSE

📄 Source code

Description

Implementation of SSE acceleration

Uses

Overview

Structures

Name Description
Packed Record TBasicLightingContext Base context necessary to compute lighting (can be aligned for SSE)
Class TMemoryBlockAlign128 Class to allocate memory that is aligned to 128 bits boundaries
Packed Record TPoint3D_128 Point in 3D / 4D

Functions and Procedures

operator * (const v1: TPoint3D_128; const factor: single): TPoint3D_128;
operator + (constref v1,v2: TPoint3D_128): TPoint3D_128;
operator - (const v: TPoint3D_128): TPoint3D_128; inline;
operator - (const v1,v2: TPoint3D_128): TPoint3D_128;
operator = (const v1,v2: TPoint3D_128): boolean; inline;
procedure ClearPoint3D_128(out v: TPoint3D_128);
function IsPoint3D_128_Zero(const v: TPoint3D_128): boolean; inline;
procedure Normalize3D_128_SqLen(var v: TPoint3D_128; out SqLen: single);
function Point3D(const point3D_128: TPoint3D_128): TPoint3D; inline; overload;
function Point3D_128(const pointF: TPointF): TPoint3D_128; inline; overload;
function Point3D_128(const point3D: TPoint3D): TPoint3D_128; inline; overload;
function Point3D_128(x,y,z,t: single): TPoint3D_128; inline; overload;
function Point3D_128(x,y,z: single): TPoint3D_128; inline; overload;

Types

PBasicLightingContext = ˆTBasicLightingContext;
PPoint3D_128 = ˆTPoint3D_128;

Constants

ExtendedLightingContextSize = 128;
FLAG_ENABLED_SSE = true;
Point3D_128_Zero : TPoint3D_128 = (x:0; y:0; z:0; t:0);

Variables

Add3D_Aligned: procedure(var dest: TPoint3D_128; constref src: TPoint3D_128);
DotProduct3D_128: function(constref v1,v2: TPoint3D_128): single;
Normalize3D_128: procedure(var v: TPoint3D_128);
UseSSE: boolean;
UseSSE2: boolean;
UseSSE3: boolean;
VectProduct3D_128: procedure(const u,v: TPoint3D_128; out w: TPoint3D_128);

Description

Functions and Procedures

operator * (const v1: TPoint3D_128; const factor: single): TPoint3D_128;

This item has no description.

operator + (constref v1,v2: TPoint3D_128): TPoint3D_128;

This item has no description.

operator - (const v: TPoint3D_128): TPoint3D_128; inline;

This item has no description.

operator - (const v1,v2: TPoint3D_128): TPoint3D_128;

This item has no description.

operator = (const v1,v2: TPoint3D_128): boolean; inline;

This item has no description.

procedure ClearPoint3D_128(out v: TPoint3D_128);

This item has no description.

function IsPoint3D_128_Zero(const v: TPoint3D_128): boolean; inline;

This item has no description.

procedure Normalize3D_128_SqLen(var v: TPoint3D_128; out SqLen: single);

This item has no description.

function Point3D(const point3D_128: TPoint3D_128): TPoint3D; inline; overload;

This item has no description.

function Point3D_128(const pointF: TPointF): TPoint3D_128; inline; overload;

This item has no description.

function Point3D_128(const point3D: TPoint3D): TPoint3D_128; inline; overload;

This item has no description.

function Point3D_128(x,y,z,t: single): TPoint3D_128; inline; overload;

This item has no description.

function Point3D_128(x,y,z: single): TPoint3D_128; inline; overload;

This item has no description.

Types

PBasicLightingContext = ˆTBasicLightingContext;

This item has no description.

PPoint3D_128 = ˆTPoint3D_128;

This item has no description.

Constants

ExtendedLightingContextSize = 128;

128

FLAG_ENABLED_SSE = true;

This item has no description.

Point3D_128_Zero : TPoint3D_128 = (x:0; y:0; z:0; t:0);

This item has no description.

Variables

Add3D_Aligned: procedure(var dest: TPoint3D_128; constref src: TPoint3D_128);

This item has no description.

DotProduct3D_128: function(constref v1,v2: TPoint3D_128): single;

This item has no description.

Normalize3D_128: procedure(var v: TPoint3D_128);

This item has no description.

UseSSE: boolean;

This item has no description.

UseSSE2: boolean;

This item has no description.

UseSSE3: boolean;

This item has no description.

VectProduct3D_128: procedure(const u,v: TPoint3D_128; out w: TPoint3D_128);

This item has no description.