共用方式為


全域參數

每個 DXSAS 相容效果都必須將具有全域語意的單一全域效果參數定義為最小值。 全局參數也可以使用一或多個選擇性註釋。 語法如下:

int VariableName : SasGlobal
<
    SasVersion 
    [OptionalAnnotations]
>;

哪裡:

SasVersion

唯一必要的註釋是 SasVersion。 它宣告如下:

int3 SasVersion = { major, minor, revision };

哪裡:

  • major 表示 DXSAS 主要版本。 DXSAS 的主要版本可以包含定義之語意和批注集的掃掠變更。 可以新增和移除語意和批注,而且一般而言,不保證與舊版的回溯相容性。
  • minor 表示 SAS 次要版本。 DXSAS 的次要版本可以包含新增語意或註釋。 此外,DXSAS 標準中可能會將語意和註釋標示為已被取代。 主應用程式仍必須支援已被取代的語意和批註,但在使用這類語意或註釋時,可能會發出警告診斷。 次要版本與舊版回溯相容。
  • revision 表示 DXSAS 修訂。 DXSAS 的修訂只以修正 Bug、移除模棱兩可和精簡標準的方式存在。 標準修訂與舊版回溯相容。

目前的版本是 1.0.0。 此批注沒有預設值。

SasEffectAuthor

這會宣告建立效果的人員。 它宣告如下:

string SasEffectAuthor = "value";

其中 value 是識別效果作者的字串。 預設值為空字串。

SasEffectAuthoringSoftware

這會宣告軟體已撰寫效果。 它宣告如下:

string SasEffectAuthoringSoftware = "value";

其中 value 是識別效果撰寫軟體的字串。 預設值為空字串。

SasEffectCategory

這會宣告效果分類。 它宣告如下:

string SasEffectCategory = "value";

其中 value 是識別效果類別的字串。 預設值為空字串。 類別是使用正斜線做為分隔符,透過類似路徑的值來表示。 效果只能屬於一個類別,因為單一 SasEffectCategory 值內沒有表示包含多個路徑的語法。 主應用程式不會將此批注的值視為區分大小寫。

SasEffectCompany

這會宣告建立效果的公司。 它宣告如下:

string SasEffectCompany = "value";

其中 value 是識別擁有效果之公司名稱的字串。 預設值為空字串。

SasEffectDescription

這描述效果。 它宣告如下:

string SasEffectDescription = "value";

其中 value 是描述效果的字串。 預設值為空字串。

SasEffectHelp

這是一個說明字串,可在要求相關效果的說明時向用戶顯示。 它宣告如下:

string SasEffectHelp = "value";

其中 value 是一個字串,如果使用者要求協助,則可以顯示此字串。 預設值為空字串。

SasEffectRevision

此批注可讓工具和用戶記錄相關聯效果檔案的修訂編號。 例如,使用者可以在此批注的值中插入適當的關鍵詞,以在其最愛的修訂控件軟體中叫用關鍵詞替代。 它宣告如下:

string SasEffectRevision = "value";

其中 value 是識別效果修訂的字串。 預設值為空字串。

例子

以下是只使用單一必要批注的範例:

int gp : SasGlobal
<
  int3 SasVersion = {1,0,0};
>;

以下是使用必要批注和數個選擇性批注的範例:

int gp : SasGlobal
<
  int3 SasVersion = {1,0,0};
  string SasEffectAuthor = "Mike's Shader";
  string SasEffectAuthoringSoftware = "fxe 2.5.4";
  string SasEffectCategory = "/surface/procedural/wood";
  string SasEffectCompany = "Microsoft Corporation";
  string SasEffectDescription = "Renders an iridescent surface.";
  string SasEffectHelp = "For more information, see https://somelocation/skin.htm";    
  string SasEffectRevision = "$Revision$";  
>;

DirectX 標準註釋和語意參考