//-----------------------------------------------------------------------------
//
// This file contains the general span parsing code.
//
// Copyright (C) Microsoft Corporation, 1997.
//
//-----------------------------------------------------------------------------

#include "rgb_pch.h"
#pragma hdrstop
#include "cbldfncs.h"
#include "cbufread.h"
#include "cbufwrt.h"
#include "ccrbd_mh.h"
#include "ccrgn_mh.h"
#include "cloop.h"
#include "cspnpars.h"
#include "ctest_mh.h"
#include "ctxa_mh.h"
#include "ctxbd_mh.h"
#include "ctxrd_mh.h"
#include "ctstf_mh.h"
#include "catest_mh.h"
include(`bead.mh')

//-----------------------------------------------------------------------------
//
// C_*Tbl
//
// The individual bead tables
//
//-----------------------------------------------------------------------------
#define C_NULL NULL
define(`d_MakeTable', `
static d_UpCase(`$1')`'BEADS C_`'$1`'Beads =
{
d_Null(d_`'$1`'Beads(``    C_XX,
'', `XX'))
};')dnl
dnl
d_MakeTable(RenderSpans)
d_MakeTable(Begin)
d_MakeTable(Test)
d_MakeTable(TestFail)
d_MakeTable(Tex1Addr)
d_MakeTable(Tex1AddrMip)
d_MakeTable(TexRead)
d_MakeTable(Tex2Addr)
d_MakeTable(TexAddrWrapper)
d_MakeTable(TexBlend)
d_MakeTable(TexBlendGetColor)
d_MakeTable(TexBlendGetAlpha)
d_MakeTable(TexBlendOpColor)
d_MakeTable(TexBlendOpAlpha)
d_MakeTable(ColorGen)
d_MakeTable(AlphaTest)
d_MakeTable(ColorBlend)
d_MakeTable(SrcBlend)
d_MakeTable(DestBlend)
d_MakeTable(BufRead)
d_MakeTable(BufWrite)

// These beads are unused.
#define C_PixelEndAny NULL
#define C_SpanEndAny NULL
d_MakeTable(PixelEnd)
d_MakeTable(SpanEnd)

//-----------------------------------------------------------------------------
//
// C_BeadTbl
//
// The root of all the bead table pointers.
//
//-----------------------------------------------------------------------------

BEADTABLE g_C_BeadTbl =
{
    &C_RenderSpansBeads,
    &C_BeginBeads,
    &C_TestBeads,
    &C_TestFailBeads,
    &C_Tex1AddrBeads,
    &C_Tex1AddrMipBeads,
    &C_TexAddrWrapperBeads,
    &C_TexReadBeads,
    &C_Tex2AddrBeads,
    &C_TexBlendBeads,
    &C_TexBlendGetColorBeads,
    &C_TexBlendGetAlphaBeads,
    &C_TexBlendOpColorBeads,
    &C_TexBlendOpAlphaBeads,
    &C_ColorGenBeads,
    &C_AlphaTestBeads,
    &C_ColorBlendBeads,
    &C_SrcBlendBeads,
    &C_DestBlendBeads,
    &C_BufReadBeads,
    &C_BufWriteBeads,
    &C_PixelEndBeads,
    &C_SpanEndBeads,
};