A Cg programozási nyelv

Nyelvi elemek



Alapok

A nyelv alapját az ANSI C specifikáció képezte, de tovább bővítették azt C++ és Java-beli elemekkel.

Ez a leírás nem tér ki azokra a nyelvi elemekre, melyekben a Cg teljesen megegyezik az ANSI C-vel.

Preprocesszor

Támogatja a preprocesszori utasításokat, mint az #if, #define, stb. Implementációtól függően támogatja a makróként használt #define utasítást, és a #include-ot.

Fenntartott szavak

A nyelv specifikációjában fenntartott szóként szerepel minden C és C++-beli fenntartott szó, de ezek nem mindegyike használt.

Hiányzó lehetőségek az ANSI C-hez képest

Csendes különbségek

Csendes különbségek azok az eltérések a C nyelvtől, amik C szemléletű Cg programozás esetén nem okoznak fordítási hibát, de helytelen működést eredményezhetnek, ezért ezekre kiemelten kell figyelni a programozás során.

Ezek a különbségek:

C++ és Java jellegű tulajdonságok

Profilok (profiles)

A több lehetséges hardver és API miatt egy programot többféleképpen lehet vagy éppen nem is lehet lefordítani.

Ennek a nyelvi szintű támogatására szolgálnak a profilok. A használható profilok köre az új fordítókkal bővülhetnek, mivel egy új hardver új lehetőségeket kínálhat.

A profilok megszabják, hogy milyen típusok, műveletek, ciklusok, és Standard Library-beli függvények használhatók.

A profiloknak két fajtája van, a Vertex Profile és Pixel Profile, rendre vertex shader és pixel shader programokhoz.

A Cg fordítók által jelenleg ismert profilok:

Az egyes profilok pontos lehetőségei megtalálhatók a nyelv specifikációjában.