cegui 3
資料檔案的裝載和初始化
目前已經學習了cegui的渲染入門 和 資源管理入門,下一步要學習裝載資料檔案了.只有裝載了資料檔案,
cegui才會產生想要的輸出..
資料檔案概述
cegui使用多種型別的資料檔案.
xml xsd? 都是xml
cegui使用的大多說檔案都是xml格式的,除了那些特殊的以及可以裝載的模組檔案(dll),說到這裡
大家可能會想到那個特殊的.xsd檔案. 儘管現在cegui的預設xml解析庫是expat xml解析庫,可是cegui
以前一直使用的是xerces-c++庫作為她的xml解析庫.crazy eddies 本人也更喜歡這個庫,這個庫的優勢
是它提供模式驗證(schema validation).通過模式驗證,我們可以在解析期間檢測輸入檔案是否包含需要的
資料以及資料是否正確的設定.系統需要乙個額外的檔案才可以做到這個.他們就是以.xsd作為字尾的模式檔案
cegui的模式檔案存放在cgui_mk2/xmlrefschema/目錄下.目前,對於.xsd檔案,你只需知道,當把xerce-c++
用作xml解析器的時候,必須讓resourceprovider系統可以找到他們.要做到這一點很簡單那,只需要設定乙個資源組,
把此資源組關聯到乙個包含.xsd檔案的資料夾,並把這個資源組設定為cegui::xeracesparser裝載.xsd檔案是
所使用的資源組.
資料檔案
為了清晰的說明資料檔案代表什麼型別的資源.資料檔案並不是都是以.xml作為字尾,而是以更有意義的字尾名.比如
imageset的字尾名是.imageset,font的字尾.font等等
imageset
為了效率,通常我們把材質檔案等組合成到乙個大的材質,在使用的時候在上面擷取
各個小的材質.而這個imageset就是儲存各個小材質在整個源的區域資訊的.源也在
裡面指定了,每個區域都有乙個獨一無二的名字,當提到他名字的時候,系統就把他當作處理.
所以 ,可以說imageset定義了一系列,通過修改imageset中的源名,各個區域的位置
和大小,就可以輕鬆的改變所繪製的gui的外觀了.
font
顯然是定義了cegui使用的字型. 所能定義的字型型別有2種
freetype font
這是一種基於true-type (.ttf)的字型檔案.從cegui 0.5.0開始,在.font檔案中用type ="freetype"
指定這種字型型別,在更早的版本中,用"dynamic"指定.
pixmap font
位圖字型. 這種字型基於乙個定義了文字的imageset.從cegui0.5.0 開始,在.font檔案中
使用type =" pixmap"指定該字型,在更早的版本中,使用"static"指定.
scheme
該檔案是把其他資料檔案聯絡到一起的主要手段,同時他也是裝載和定義各種控制項最方便的方法.
乙個scheme檔案可以把下面的乙個或者多個檔案.
(當scheme檔案被載入的時候,他所包含的檔案也被載入並且初始化)
imageset
font
windowset
windowrendererset
windowalias
windowset 主要用來指明乙個可載入的模組 .dll .so等.並列出他所使用的控制項中你想註冊的
控制項的名字.如果沒有列出任何空間名,那麼模組中的所有控制項都將被註冊.
windowalias
提供通過別名可以指定乙個視窗/空間型別的方法.用此方法,也可以使用另乙個控制項型別來"替代"
乙個已經註冊的空間型別,這樣就達到了隱藏已註冊控制項的效果.
windowrendererset
指明乙個可載入模組(.dll等)的名字,並列出它所使用的視窗渲染器(window renderer)中你想註冊的視窗渲染器的名字。如果沒有列出任何視窗渲染器名,那麼模組中所有的視窗渲染器都將被註冊。「視窗渲染器」是乙個可以控制基本視窗型別渲染的東西。所有的視窗渲染器都是利用'falagard'蒙皮系統進行渲染的(儘管這不是非常必須的)。
用來建立乙個可用的windowtype型別,包含3個部分.
targettype --指定基類(具有相關的功能);renderer----指定視窗渲染器
(可以控制渲染指定的targettype)
looknfeel --指定要使用的**(
一般這個它們是通過xml格式的looknfeel檔案指定)
layout
檔案用xml格式描述了乙個視窗的布局. 每個鑲嵌的"window"元素定義乙個想要建立的視窗或者
控制項,"property"元素為每個定義的視窗設定相關屬性.
config
cegui檔案支援使用配置文i件. 這個檔案允許你定義一些預設引數,比如預設載入的scheme,
預設載入的layout檔案.初始化和終止指令碼,以及其他沒有提到的東西.
載入基本的檔案
為了成功的顯示cegui,你需要載入一些檔案,至少是下面這些
imageset font scheme
值得高興的是,scehme檔案可以自動的載入其他的2個檔案,基於教程的目的,我們將載入
乙個scheme檔案和乙個font檔案 ------scheme檔案會自動幫我們載入乙個imageset檔案.
code:
//load scheme ,他自動load taharezlook imageset
cegui::schememanger::getsingleton().loadscheme(
"taharezlook.scheme");
載入font檔案 .第乙個被載入的字型檔案將自動成為預設字型.
if(!cegui::fontmanger::getsingleton().isfontpresent(
"commonwealth-10") )
cegui::fontmanger::getsingleton().createfont(
"commonwealth-10");
上面的**假設資源組以及預設資源組都按照資源管理入門中描述的方法設定好了.
簡單的預設設定
最後需要設定一些預設值,這麼做是為了確保系統總是用可用的字型和滑鼠指標,以防止某個視窗
或者控制項沒有特別設定他自己的字型和滑鼠指標.
實際上 我們不需要指定乙個預設字型,因為fontmanager會自動的設定第乙個被載入的字型作為
預設字型,如果他不是你想要的預設字型.你可設定為其他的. 設定的**如下:
system::getsingleton().setdefaultfont(
"commonwealth-10");
另乙個你需要設定預設值的是滑鼠指標。這麼做是為了確保當滑鼠位於那些沒有設定指標的控制項上時不至於消失。設定預設滑鼠指標的**如下(本示例使用由上面的scheme載入的taharezlook imageset):
system::getsingleton().setdefaultmousecursor(
"taharezlook"
, "mousearrow"
);
如果你打算用工具提示,則需要指明你想用的基於tooltip的控制項型別名。儘管通常情況下是不需要這麼做的,這也超出了這個基礎教程的範圍,其實可以在每個視窗基礎上設定它。設定工具提示視窗型別**如下:
system::getsingleton().setdefaulttooltip(
"taharezlook/tooltip"
); 總結
目前,我們已經討論了關於cegui所用的資料檔案最基礎的東西:它們是什麼,它們是怎樣被載入的,以及最少要做的初始化工作。以後將要對每種資料檔案型別做深入的討論,發掘關於它們更高階的用法。
CEGUI初學者指南2 裝載資料檔案和初始化
裝載資料檔案和初始化的初學者指南 from ceguiwiki 1 概覽 資料檔案和resourceprovider 1.1 資源的提供 什麼是resourceprovider?1.2 xml,xsd?都是xml 1.3 資料檔案 1.3.1 集 1.3.2 字型 1.3.3 scheme 1.3....
rabbitmq更換資料檔案和日誌檔案的存放位置
原來的預設位置是 var下 需要將這些檔案更換位置 1 先建立資料檔案和日誌檔案存放位置的目錄並給許可權 mkdir p usr local rabbitmq mnesia mkdir p usr local rabbitmq log chmod r 777 usr local rabbitmq 2...
rabbitmq更換資料檔案和日誌檔案的存放位置
原來的預設位置是 var下 需要將這些檔案更換位置 1 先建立資料檔案和日誌檔案存放位置的目錄並給許可權 mkdir p usr local rabbitmq mnesia mkdir p usr local rabbitmq log chmod r 777 usr local rabbitmq 2...