锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩亚洲一区二,久久精品国产第一区二区三区,伊人成年综合电影网http://m.shnenglu.com/mybios/娓告垙寮鍙?C++ Cocos2d-x OpenGL DirectX 鏁板 璁$畻鏈哄浘褰㈠ SQL Server <BR> <BR>zh-cnMon, 27 Oct 2025 17:39:28 GMTMon, 27 Oct 2025 17:39:28 GMT60cocos2d-x鑴氭湰寮曟搸錛圝avaScript銆丩ua絳夌瓑錛夌殑澶х粺涓錛堟柟妗堟榪幫級http://m.shnenglu.com/mybios/archive/2015/11/20/212299.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Fri, 20 Nov 2015 07:03:00 GMThttp://m.shnenglu.com/mybios/archive/2015/11/20/212299.htmlhttp://m.shnenglu.com/mybios/comments/212299.htmlhttp://m.shnenglu.com/mybios/archive/2015/11/20/212299.html#Feedback2http://m.shnenglu.com/mybios/comments/commentRss/212299.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/212299.html    cocos2d-x鏀寔澶氱鑴氭湰寮曟搸鐨勭粦瀹氾紝渚嬪鏀寔lua錛堥氳繃lua鎴杔uajit錛夈乯avascript錛堥氳繃SpiderMonkey鑴氭湰寮曟搸錛夛紝鍒嗗埆瀵瑰簲libluacocos2d鍜宭ibjscocos2d涓や釜宸ョ▼錛屾瘡涓伐紼嬮噷鍒嗗埆瀵瑰簲澶ч噺鐨勮嚜鍔ㄧ粦瀹氬拰鎵嬪姩緇戝畾浠g爜銆傚鏋滈渶瑕佸鍔犱竴浜涘紩鎿庡姛鑳介渶瑕佺粦瀹氬埌鑴氭湰鐨勮瘽錛屼袱涓伐紼嬮兘闇瑕佷慨鏀逛唬鐮侊紝闈炲父涓嶄究浜庣淮鎶ゃ傚亣濡傚笇鏈涗嬌鐢ㄥ叾浠栬剼鏈紩鎿庣殑璇濓紙渚嬪google綰㈢孩鐏伀鐨刅8錛屾垨鑰卪s鐨刢hakra錛夛紝閭e緱澶氬紑鍑犱釜宸ョ▼錛屾瘡涓伐紼嬮兘闇瑕佸疄鐜板嚑涔庝竴鏍鳳紝浣嗘槸鍙堜笉涓鏍風殑浠g爜銆傜幇鍦ㄦ垜鎻愬嚭涓縐嶆濇兂錛屾潵瑙e喅榪欑被闂銆?/span>
    鐜版湁鐨勮剼鏈紩鎿庡濡傜墰姣涳紝鑰屼笉鍚屼紒涓氶棿鍙兘鏈変笉鍚岀殑鎶鏈Н绱紝甯屾湜閫夋嫨涓嶄竴鏍風殑鑴氭湰寮曟搸錛屾湁鐨刾ython锜掕泧媧撅紝鏈夌殑鏄痩ua媧撅紝鏈夌殑鏄痳uby媧撅紝榪樻湁JavaScript銆乴ua絳夌瓑絳夌瓑錛屾墍浠ワ紝JavaScript鍜孡ua涓嶅簲璇ユ垚涓轟簩閫変竴銆?/div>
鑰岃繖浜涜剼鏈紩鎿庝箣闂達紝鏈夊緢澶氱殑鍏卞悓鐐癸紝渚嬪閮芥槸寮辯被鍨嬭璦錛岄兘鏄敮鎸侀偅涔堝嚑縐嶇畝鍗曠被鍨嬶紝閮芥槸浣跨敤GC鏈哄埗鏉ュ洖鏀剁瓑絳夈?/div>
鑴氭湰寮曟搸緇熶竴鍖栵紝鏄妸澶氫釜鑴氭湰寮曟搸錛坙ua銆丣avaScriptCore銆乧hakra銆乿8銆乻pidermonkey絳夌瓑錛夐氳繃鍚屼竴濂楁娊璞℃帴鍙h繘琛屽皝瑁咃紝寮曟搸鐨勮剼鏈粦瀹氫唬鐮侀兘閫氳繃鎶借薄鎺ュ彛鏉ョ紪鍐欍傞氳繃閫夋嫨緙栬瘧涓嶅悓鐨勫疄鐜板眰鏉ュ疄鐜拌剼鏈紩鎿庨棿鐨勫垏鎹紝鑰屼笉鏄瘡涓剼鏈紩鎿庨兘瑕佸啓涓嶄竴鏍風殑鑴氭湰緇戝畾浠g爜錛岃繖鏍瘋兘澶уぇ綆鍖栬剼鏈粦瀹氬眰鐨勭淮鎶ゆ垚鏈紝騫惰兘淇濊瘉鎵鏈夎剼鏈紩鎿庣殑鎺ュ彛鐨勭粷瀵逛竴鑷存э紝騫惰鐢ㄦ埛杞繪澗閫夋嫨浣跨敤鍝釜鑴氭湰寮曟搸錛岃屼笉闄愬畾浜庡繀欏諱嬌鐢ㄥ畼鏂歸夋嫨鐨勫紩鎿庛?/div>
    鑴氭湰寮曟搸鎶借薄灞侫PI鐨勫畾涔夐潪甯稿叧閿紝姒傛嫭璧鋒潵鎴戣涓轟粬蹇呴』絎﹀悎浠ヤ笅瑕佹眰錛?/div>
1銆?span style="background-color: inherit; line-height: 1.5;">鎶借薄灞傜殑鎺ュ彛蹇呴』鍦ㄥ悇涓剼鏈紩鎿庝箣闂撮兘鍙互瀹炵幇錛屼緥濡傦細“鍒涘緩瀛楃涓?#8221;榪欎釜鎺ュ彛錛屾槸浠繪剰鑴氭湰寮曟搸閮借兘瀹炵幇銆?/span>
2銆?/span>鎶借薄灞傚湪緇戝畾鑴氭湰鐨勮繃紼嬩腑鏄凍澶熺敤鐨勶紝渚嬪錛氭垜浠渶瑕佸鍑轟竴涓狢++鐨勭被錛岃繕闇瑕佸鍑虹被閲岀殑鍑芥暟錛岃繕鏈夌壒孌婄殑緇撴瀯浣擄紝鐢氳嚦鍖呭惈lambda琛ㄨ揪寮忥紝榪欎簺閮介渶瑕佽冭檻榪涘幓鎶借薄灞傚畾涔夌殑闇姹傞噷銆?/span>
3銆佹娊璞″眰榪樺繀欏昏凍澶熺殑钖勶紝钖勫埌榪愯鏃舵牴鏈劅瑙変笉鍒頒粬鐨勫瓨鍦ㄣ傞渶瑕佷嬌鐢?#8220;瀹?#8221;鎴栬卛nline鍑芥暟鐨勬柟寮忔潵緇欒繖涓娊璞″眰鍑忚偉錛屽潥鍐充笉浣跨敤C++綾葷殑鏂瑰紡鏉ュ姞鍘氫粬銆?/span>
4銆佹娊璞″眰鍦ㄤ嬌鐢ㄧ殑榪囩▼涓繀欏昏凍澶熺畝鍗曪紝綆鍗曞埌灝卞ソ鍍忔槸涓涓崟鐙殑鑴氭湰寮曟搸API涓鏍鳳紝榪欎簺API鐪嬩笂鍘繪槸澶х粺涓鐨勶紝騫朵笖鏄剼鏈璦鏃犲叧鐨勩?/span>
    鍦ㄥ畾涔夋娊璞″眰鐨勮繃紼嬩腑錛屾垜鍙傝冧簡寰堝鍒漢鐨勬柟妗堬紝鏈緇堬紝鎴戜嬌鐢?nbsp;浜嗚繖涔堜釜鏂規(guī)錛?/div>
1銆佷嬌鐢– inline鍑芥暟鏉ュ畾涔堿PI鎺ュ彛鍑芥暟鐨勫0鏄庯紝鍚勪釜寮曟搸鐨勫疄鐜伴儴鍒嗗垎鍒疄鐜拌繖浜涘嚱鏁?/div>
2銆佸畾涔変竴浜涘熀鏈被鍨嬶紝鍩烘湰綾誨瀷鏈夊悇涓剼鏈紩鎿庢潵鏈緇堝畾涔夛紝浣嗗悕瀛楀拰鎰忎箟閮芥槸緇熶竴鐨勶紝鍒濇瀹氫箟浜嗚繖浜涚被鍨嬶紝姣忎釜綾誨瀷鍦ㄤ笉鍚岃剼鏈紩鎿庝腑瀵瑰簲鐨勭被鍨嬪垎鍒涓嬭〃錛?/div>
緇熶竴綾誨瀷
鎻忚堪
Lua
JavaScript
JavaScriptCore
V8
chakra
USValue
琛ㄧず鑴氭湰涓殑浠繪剰綾誨瀷
浠繪剰綾誨瀷

Object
JSValueRef
v8::Local<v8::Value>
JsValueRef
USObject
鑴氭湰瀵硅薄錛屽璞″彲浠ョ敱key銆乿alue緇勬垚錛屽彲浠ユ嫢鏈夌戶鎵跨粨鏋?/div>
table
Object
JSObjectRef
v8::Local<v8::Object>
JsValueRef
USFunction
鑴氭湰鍑芥暟
function
Function
JSObjectRef
v8::Local<v8::Function>
JsValueRef
USArray
鏁扮粍綾誨瀷錛屼笅鏍囦粠0寮濮?/div>
table
Array
JSObjectRef
v8::Local<v8::Array>
JsValueRef
USMap
閿?鍊奸厤瀵圭殑map綾誨瀷
table
Map
JSObjectRef
v8::Local<v8::Object>
JsValueRef
USSet
鍊間綔涓洪敭涔熶綔涓哄煎緱鍒楄〃錛屽間笉鑳介噸澶?/div>
table
Set
JSObjectRef
v8::Local<v8::Object>
JsValueRef
USNumber
鏁板肩被鍨?/div>
number
Number
JSValueRef
v8::Local<v8::Number>
JsValueRef
USBoolean
bool綾誨瀷
boolean
Boolean
JSValueRef
v8::Local<v8::Boolean>
JsValueRef
USString
瀛楃涓茬被鍨?/div>
string
String
JSValueRef
v8::Local<v8::String>
JsValueRef
USBuffer
鍐呭瓨鍧楃紦瀛樺璞?/div>
string
Int8Array
JSValueRef
v8::Local<v8::Int8Array>
JsValueRef
USConstructor
瀵硅薄瀹炰緥鐨勬瀯閫犲櫒錛岀敤鏉ュ鍑篊++綾?/div>
table
Object
JSValueRef
v8::Local<v8::Object>
JsValueRef
3銆佸畾涔変竴鎵笰PI錛岀敤浠ュ浠ヤ笂瀹氫箟鐨勫熀鏈被鍨嬭繘琛屽垱寤恒佽皟鐢ㄣ佷慨鏀圭瓑鎿嶄綔錛屼緥濡傚垱寤虹殑榪囩▼API瀹氫箟鎴愯繖縐嶅艦寮忥細

 1  // 鍒涘緩Null鍊?/span>
 2     inline USValue createUSNull();
 3  // 鍒涘緩Undefined鍊?/span>
 4     inline USValue createUSUndefined();
 5  // 鍒涘緩鏅氱殑瀵硅薄
 6     inline USObject createUSObject();
 7  // 鍒涘緩鏁扮粍
 8     inline USArray createUSArray(int length = 0);
 9  // 鍒涘緩Map
10     inline USMap createUSMap();
11  // 鍒涘緩Set
12     inline USSet createUSSet();
13  // 鍒涘緩瀛楃涓?/span>
14     inline USString createUSString(const char *str, int length = -1);
15  // 鍒涘緩Buffer錛屽皢浼氭嫹璐濇暟鎹埌Buffer涓紝鑴氭湰寮曟搸璐熻矗閿姣?/span>
16     inline USBuffer createUSBuffer(const char *buffer, size_t size);
17  // 鍒涘緩涓涓剼鏈嚱鏁幫紝鍑芥暟璋冪敤鏃朵細鍥炶皟鍒癱allback錛屽茍甯︿笂data
18     USFunction createUSFunction(USFunctionCallback callback, void *data = nullptr, const char *name = nullptr);
19  // 鍒涘緩鏁板瓧
20     inline USNumber createUSNumber(double number);
21  // 鍒涘緩bool
22     inline USBoolean createUSBoolean(bool value);
23 
24  // 鍒涘緩瀵硅薄鏋勯犲櫒
25     USConstructor USClassCreateConstructor(const USClass &cls);
 
鎶借薄灞傚畾涔夊ソ鍚庯紝闇瑕佺粡榪囧ぇ閲忕殑鍔姏錛屾墠鑳藉湪鍚勪釜鑴氭湰寮曟搸闂寸殑鏈緇堝疄鐜般傚綋鏈緇堝疄鐜板畬姣曞悗錛屽氨鍙互涓嬩竴姝ュ伐浣滐細
1銆佹妸cocos2d-x瀵逛簬鑷姩緇戝畾浠g爜鐨則emplate綾昏繘琛屼慨鏀癸紝淇敼鎴愪嬌鐢ㄧ粺涓鑴氭湰寮曟搸鐨凙PI
2銆佹妸cocos2d-x瀵逛簬鎵嬪姩緇戝畾鐨勪唬鐮佸娉曠偖鍒?/div>
3銆佷嬌鐢ㄤ笉鍚岀殑寮曟搸瀹炵幇鏉ョ紪璇?/div>
緇忚繃榪欐牱濡傛硶鐐埗涔嬪悗錛屾渶緇坈ocos2d-x鍙墿涓嬩竴濂楄剼鏈粦瀹氱殑宸ョ▼錛岃岄氳繃閫夋嫨涓嶅悓鐨勫簳灞傝剼鏈紩鎿庯紝鍗村彲浠ョ紪璇戝嚭瀹屽叏涓嶄竴鏍風殑鑴氭湰寮曟搸鐗堟湰銆?/div>
緇忚繃cocos2d-x github紺懼尯鐨勫姫鍔涳紝鏈緇堝簲璇ヤ細鍑虹幇涓嶅悓鐨刦ork錛屽python銆乺uby絳夌瓑鍚勭璇█鍑虹幇鍚勭緇戝畾鐗堟湰錛岃岃繖縐嶇粦瀹氱増鏈殑鍑虹幇錛屽彧闇瀹炵幇鎶借薄灞侫PI鐨勫熀鏈珹PI鍗沖彲銆?/div>
鑷蟲cocos2d-x鐨勮剼鏈紩鎿庣粺涓鍗沖彲瀹屾垚澶т笟銆?/div>
浣嗭紝浜嬫儏榪樻病瀹岋紝鎴戝湪涓嬩竴綃囦腑錛屽皢浼氳鍒版娊璞PI鐨勮緇嗗畾涔夛紝鏁鏈熷緟涓嬩竴綃囥?br />

濡傛灉鏈枃瀵逛綘鐨勫紑鍙戞湁鎵甯姪錛屽茍涓斾綘鎵嬪ご鎭板ソ鏈夐浂閽便?/p>

涓嶅鎵撹祻鎴戜竴鏉挅鍟★紝榧撳姳鎴戠戶緇垎浜紭縐鐨勬枃绔犮?br />






]]>tolua++瀵煎嚭C++綾葷殑涓浜涢棶棰樺拰瑙e喅鏂規(guī)硶http://m.shnenglu.com/mybios/archive/2010/02/09/107616.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Tue, 09 Feb 2010 11:43:00 GMThttp://m.shnenglu.com/mybios/archive/2010/02/09/107616.htmlhttp://m.shnenglu.com/mybios/comments/107616.htmlhttp://m.shnenglu.com/mybios/archive/2010/02/09/107616.html#Feedback7http://m.shnenglu.com/mybios/comments/commentRss/107616.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/107616.html闃呰鍏ㄦ枃

]]>
浣跨敤FreeType瀹炵幇鐭㈤噺瀛椾綋鐨勭矖浣撱佹枩浣撱佹弿杈廣侀槾褰辨晥鏋?/title><link>http://m.shnenglu.com/mybios/archive/2009/08/01/91869.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Sat, 01 Aug 2009 02:42:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2009/08/01/91869.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/91869.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2009/08/01/91869.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/91869.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/91869.html</trackback:ping><description><![CDATA[     鎽樿: 浣跨敤FreeType瀹炵幇鐭㈤噺瀛椾綋鐨勭矖浣撱佹枩浣撱佹弿杈廣侀槾褰辨晥鏋?  鍓嶈█錛?Freetype鏄竴涓法騫沖彴銆佸紑婧愮殑瀛椾綋娓叉煋鍣紝緗戜笂寰堝鏂囩珷浠嬬粛錛屾湰浜哄氨涓嶅暟鍡︿簡銆傛湰鏂囬噸鐐瑰湪浜庡疄鐜版枃绔犳爣棰樻墍灞炵殑鍚勭鏁堟灉錛屼笉鏄疐reetype鐨勫熀鏈嬌鐢ㄦ柟娉曚粙緇嶆枃妗o紝鎵浠ュ浜嶧reetype涓嶇啛鎮(zhèn)夌殑鍚屽浠鍏堝涔犱笅Freetype鐨勫熀鏈敤娉曪紝鎵嶅彲浠ヤ嬌鐢ㄦ湰鏂囦腑鎵鎻愬強鐨勬柟娉曘?姝f枃錛?鐢‵reeType瀹炵幇鐭?..  <a href='http://m.shnenglu.com/mybios/archive/2009/08/01/91869.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/mybios/aggbug/91869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2009-08-01 10:42 <a href="http://m.shnenglu.com/mybios/archive/2009/08/01/91869.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍏充簬澶╅緳鍏儴frame鏂囦歡鏍煎紡http://m.shnenglu.com/mybios/archive/2009/07/26/91270.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Sun, 26 Jul 2009 12:41:00 GMThttp://m.shnenglu.com/mybios/archive/2009/07/26/91270.htmlhttp://m.shnenglu.com/mybios/comments/91270.htmlhttp://m.shnenglu.com/mybios/archive/2009/07/26/91270.html#Feedback2http://m.shnenglu.com/mybios/comments/commentRss/91270.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/91270.html榪囨潵浜洪兘璇存妧鏈彧鏄竴灞傜焊錛屼竴鎹呭氨鐮淬傛兂褰撳ぉ鑺變簡寰堝鏃墮棿鍘葷爺絀秄rame鏂囦歡鐨勪簩榪涘埗鏍煎紡絀剁珶鏄庝箞鏉ョ殑錛屼絾濮嬬粓鏈灉銆傚埌澶存潵鍙戠幇绔熺劧鍙槸涓涓櫘閫氱殑.skeleton鏂囦歡錛岃剳鍚庝笉紱佸啋鍑哄ソ鍑犳潯榛戣壊绔栨潯銆?br />鐜版垜鎶婅繖灞傜焊鎹呯牬浜嗭紝鏈涜繃鏉ヤ漢涓嶇敤鍐嶈緵杈涜嫤鑻︾爺絀秄rame鏂囦歡鏍煎紡璧板集璺簡銆?br />

濡傛灉鏈枃瀵逛綘鐨勫紑鍙戞湁鎵甯姪錛屽茍涓斾綘鎵嬪ご鎭板ソ鏈夐浂閽便?/p>

涓嶅鎵撹祻鎴戜竴鏉挅鍟★紝榧撳姳鎴戠戶緇垎浜紭縐鐨勬枃绔犮?br />





]]>
鍙戝竷涓涓墠孌墊椂闂村啓鐨勫ぉ榫欏叓閮℅ridInfo璇誨彇婧愮爜http://m.shnenglu.com/mybios/archive/2009/07/26/91267.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Sun, 26 Jul 2009 12:36:00 GMThttp://m.shnenglu.com/mybios/archive/2009/07/26/91267.htmlhttp://m.shnenglu.com/mybios/comments/91267.htmlhttp://m.shnenglu.com/mybios/archive/2009/07/26/91267.html#Feedback5http://m.shnenglu.com/mybios/comments/commentRss/91267.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/91267.html闃呰鍏ㄦ枃

]]>
Unreal3娓告垙寮曟搸UObject婧愮爜闃呰鍒嗘瀽http://m.shnenglu.com/mybios/archive/2009/07/26/91196.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Sun, 26 Jul 2009 01:50:00 GMThttp://m.shnenglu.com/mybios/archive/2009/07/26/91196.htmlhttp://m.shnenglu.com/mybios/comments/91196.htmlhttp://m.shnenglu.com/mybios/archive/2009/07/26/91196.html#Feedback8http://m.shnenglu.com/mybios/comments/commentRss/91196.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/91196.htmlUnreal3錛堜互涓嬬畝縐癠3錛夋槸涓涓互鑴氭湰涓轟富浣撶殑娓告垙寮曟搸錛屾墍鏈変唬鐮佸嚑涔庨兘涓鴻剼鏈湇鍔★紝鎰忓懗鐫鎵鏈夋簮鐮侀兘浼氭彁渚涚浉搴旂殑鑴氭湰鍑芥暟鍦ㄨ剼鏈腑浣跨敤銆?br />UObject鏄疷3涓緢閲嶈鐨勪竴涓熀綾伙紝鎵鏈夌敱UObject媧劇敓鐨勭被閮藉彲浠ュ鍑哄埌鑴氭湰涓紙涓嶄粠UObject媧劇敓琛屼笉琛岋紵涓嶇煡閬撳憿錛夛紝浣嗘垜瀵筓3鐨勮剼鏈笉鐔熴傛殏涓斾粠C++瑙掑害鏉ュ垎鏋愪笅UObject鏄浣曞疄鐜扮殑銆?br />UObject欏懼悕鎬濅箟鏄竴涓?#8220;鍩烘湰瀵硅薄”錛屾潗璐ㄣ乵esh銆佹枃浠躲佺帺瀹剁瓑絳夐兘鏄粠榪欎釜UObject緇ф壙鑰屾潵錛岃繖涓被鍋氫簡寰堝浜嬫儏錛?/p>

1銆佸睘鎬х殑緇熶竴璁塊棶鎺ュ彛錛岃剼鏈腑灝卞彲浠ラ氳繃榪欎釜鎺ュ彛鏉ヨ闂睘鎬т簡錛?br />2銆佹垚鍛樺嚱鏁扮殑緇熶竴璁塊棶鎺ュ彛錛岃剼鏈腑鍙互閫氳繃榪欎簺鎺ュ彛鏉ヨ皟鐢║Object鎴栧叾媧劇敓綾葷殑鎴愬憳鍑芥暟錛?br />3銆佷覆琛屽寲鐨勭粺涓鎺ュ彛錛屽疄鐜頒簡涓涓繚瀛樻墍鏈夊璞$殑UPackage鍖呯鐞嗗櫒錛屼粠鑰屽仛鍒頒繚瀛樺埌浜岃繘鍒舵枃浠躲佷粠浜岃繘鍒舵枃浠惰鍙栵紝榪欐牱鍋氱殑濂藉鏄寔涔呭寲瀵硅薄錛堟瘮濡傛父鎴忎腑鐨勬潗璐ㄥ垪琛級鐨勮澆鍏ラ潪甯稿揩閫燂紝鐢變簬鏄簩榪涘埗鏍煎紡錛屼笉闇瑕佷換浣曞瓧絎︿覆鏁版嵁杞崲錛?br />4銆佹彁渚涘璞$殑鍨冨溇鍥炴敹鍔熻兘錛?br />5銆佹彁渚涚紪杈戝櫒鐨勭浉搴斿姛鑳斤紝濡傦細瀵硅薄鐨?#8220;灞炴?#8221;鏈夊悇縐嶇紪杈戝櫒鎵闇鐨勬爣璁幫紙鏄惁鍙紪杈慍PF_Edit絳夛級銆佸璞″湪緙栬緫鍣ㄤ腑鐨勬覆鏌揇rawThumbnail銆佸璞℃弿榪癎etThumbnailDesc銆佸璞¢夋嫨IsSelected銆佹槸鍚︽洿鏀逛簡鍖匨arkPackageDirty絳夌瓑錛?br />6銆佹彁渚涗竴涓璞$殑綆$悊鍣紝榪欎釜瀵硅薄綆$悊鍣ㄦ槸閫氳繃UObject涓殑涓鍫嗛潤鎬佸嚱鏁版潵瀹炵幇鐨勶紝濡傦細浠庣鐞嗗櫒涓煡鎵句竴涓璞taticFindObject銆佸垎閰嶄竴涓璞taticAllocateObject銆佷粠鍖呬腑杞藉叆涓涓璞taticLoadObject銆佹牴鎹被鍨嬫潵閬嶅巻綆$悊鍣ㄤ腑鐨勬墍鏈夊璞ObjectIterator/TObjectIterator銆侀亶鍘嗘墍鏈夐夋嫨浜嗙殑瀵硅薄TSelectedObjectIterator錛堢紪杈戝櫒浣跨敤錛?br />7銆佹彁渚涢厤緗鐞嗗櫒錛岄氳繃UObject涓殑LoadConfig銆丼aveConfig瀹炵幇
8銆佹彁渚涚被鎻忚堪淇℃伅錛屾弿榪頒簡榪欎釜綾諱粠鍝釜綾繪淳鐢熴佹湁浠涔堝睘鎬с佹瘡涓睘鎬х殑璁塊棶鏂瑰紡銆佹湁浠涔堝嚱鏁幫紝浠庤屽疄鐜頒簡鍔ㄦ佺被鍨嬪垽鏂佽剼鏈睘鎬ц闂佽剼鏈嚱鏁拌闂佸睘鎬т覆琛屽寲絳夌瓑
9銆佸叾浠栥傘傘傘?/p>

綆鍗曞垎鏋愪笅UObject涓殑鍚勪釜鎴愬憳鍙橀噺鐨勬剰涔夛細
Index錛岀敤鏉ヨ褰曡繖涓猆Object鍦ㄦ墍鏈塙Object鍒楄〃GObjObjects涓殑鍞竴绱㈠紩
HashNext錛岀敤鏉ヨ褰曞叏灞UObject Hash琛℅ObjHash涓窡榪欎釜UObject 鐨凥ash鍊肩浉鍚岀殑涓嬩竴涓猆Object鐨勬寚閽堬紝鐢ㄦ潵閰嶅悎鍏ㄥ眬Hash琛℅ObjHash閫氳繃StaticFindObject鍑芥暟蹇熸悳绱竴涓寚瀹氬悕縐扮殑UObject
StateFrame錛岃剼鏈浉鍏崇殑鍜氬挌錛岃繕娌$湅
_Linker錛岄氳繃鍦ㄥ寘鏂囦歡涓澆鍏ユ椂鐨勮澆鍏ュ櫒
_LinkerIndex錛岄氳繃鍖呮枃浠惰澆鍏ユ椂鐨刄Package鍖呭璞″湪GObjObjects涓殑鍞竴绱㈠紩錛岀浉褰撲簬Outer->Index
Outer錛岃繖涓璞℃墍灞炵殑鍖?br />ObjectFlags錛岃繖涓璞$殑涓浜涙爣璁幫紝鍏蜂綋鍙傝EObjectFlags鏋氫婦錛屼笉鍚屾爣璁版潵鍐沖畾榪欎釜瀵硅薄鐨勪竴浜涜涓猴紝姣斿鏄惁鍙互淇濆瓨銆佹槸鍚﹀彲瑙佺瓑絳?br />Name錛屽璞″悕縐幫紝閫氳繃涓涓狥Name鏉ュ疄鐜幫紝榪欎釜FName鍙槸涓ソ涓滆タ鍝︼紝瀛楃涓叉瘮杈冨彉鎴愪簡涓涓狧ash鍊兼瘮杈?br />Class錛岀敤鏉ユ弿榪拌繖涓被錛屽氨鏄互涓婄1銆?銆?鐐硅鍒扮殑銆傝繖涓狢lass鍦ㄨ皟鐢║Object::StaticClass鎴栨淳鐢熺被鐨凷taticClass闈欐佸嚱鏁版椂浼氫竴嬈℃у垵濮嬪寲錛屾剰鍛崇潃鍗充嬌鍒涘緩澶氬皯涓猆Object錛屼絾Class鍙細鏈変竴涓疄渚嬶紝鎴戜滑閫氳繃榪欎釜綾伙紝鍙互浣跨敤TFieldIterator鐨勭粺涓鏂瑰紡鏉ラ亶鍘嗚繖涓被鐨勬墍鏈夊睘鎬с佸嚱鏁般?/p>

UObject鐨勯潤鎬佸彉閲忥紝榪欎簺闈欐佸彉閲忓叾瀹炲氨鏄疷Object瀵硅薄綆$悊鍣ㄤ嬌鐢ㄧ殑鍙橀噺錛屽鏋滅敤Ogre鐨勮璁℃柟娉曟潵鍋氾紝灝辯浉褰撲簬鍙﹀涓涓猚lass UObjectManager : public Singleton<UObjectManager>錛岀劧鍚庡湪閲岄潰鎶婅繖浜涢潤鎬佸彉閲忔嬁鍒癠ObjectManager涓幓銆傜畝瑕佸垎鏋愪笅闈欐佸彉閲忕殑鎰忎箟錛?br />GObjInitialized錛屽璞$鐞嗗櫒鏄惁宸茬粡鍒濆鍖栵紝鍏ㄥ眬瀵硅薄綆$悊鍣ㄥ彧闇瑕佸垵濮嬪寲涓嬈″氨澶熶簡錛?br />GObjNoRegister錛岃皟鐢⊿taticInit鏃朵細璁劇疆鎴?錛?br />GObjBeginLoadCount錛屾湁澶氬皯涓璞¤BeginLoad浜嗭紱
GObjRegisterCount錛孭rocessRegistrants涓嬌鐢?br />GImportCount錛岃繕娌$粏鐪嬪摝
GObjHash錛岄氳繃姣忎釜UObject鐨凬ame鐨凥ash鍊煎彇浣?2浣嶄綔涓虹儲寮曞間繚瀛樺湪GObjHash琛ㄤ腑錛孒ash鍊肩殑浣?2浣嶇浉鍚岀殑錛屽彧璁板綍絎竴涓湪GObjHash琛ㄤ腑錛屽叾浠栫殑閫氳繃閾捐〃鏂瑰紡浣跨敤UObject鐨凥ashNext鏉ラ摼鎺ヨ搗鏉?br />GAutoRegister錛岃嚜鍔ㄦ敞鍐岀殑瀵硅薄鍒楄〃
GObjRoot錛屽璞℃爲縐嶇殑欏跺眰瀵硅薄
GObjObjects錛屾墍鏈夊璞$殑鍒楄〃

鍏堣榪欎箞澶氫簡錛岀戶緇涔犮?/p>

濡傛灉鏈枃瀵逛綘鐨勫紑鍙戞湁鎵甯姪錛屽茍涓斾綘鎵嬪ご鎭板ソ鏈夐浂閽便?/p>

涓嶅鎵撹祻鎴戜竴鏉挅鍟★紝榧撳姳鎴戠戶緇垎浜紭縐鐨勬枃绔犮?br />





]]>
鍦╒S2005璋冭瘯鍣ㄤ腑鏄劇ずUnreal3鐨勬暟鎹?/title><link>http://m.shnenglu.com/mybios/archive/2009/05/24/85618.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Sun, 24 May 2009 09:13:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2009/05/24/85618.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/85618.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2009/05/24/85618.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/85618.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/85618.html</trackback:ping><description><![CDATA[Unreal3寮曟搸涓紝澶ч噺浣跨敤浜嗚嚜瀹氫箟鐨勬ā鐗堟垨鏁版嵁綾誨瀷錛屾瘮濡俆Array銆丗Name銆丗String絳夌瓑錛屽浜庤繖涓夌鏁版嵁綾誨瀷錛屾垜浠棤娉曞湪VS2005涓洿鎺ユ煡鐪嬩粬浠殑鍊鹼紙璧風爜涓嶈兘鍍弒td::vector/std::string涓鏍風洿瑙傛煡鐪嬶級銆?br>閫氳繃msdn錛屽緱鐭s2005鐨刟utoexp.dat鍙互鍙互緇欒嚜瀹氫箟鐨勬暟鎹被鍨嬬紪鍐欏彲瑙嗗寲鑴氭湰浠庤屽疄鐜扮洿瑙傜殑璋冭瘯銆?br>緇忚繃涓鐣爺絀訛紝瀹炵幇浜嗗Unreal3鏁版嵁綾誨瀷鐨勭洿瑙傜殑鍙鍖栬皟璇曪紝鏂規(guī)硶濡備笅錛?br><br>鎵撳紑vs2005鐩綍涓殑autoexp.dat鏂囦歡<br><br>鎵懼埌[AutoExpand]錛屽湪[AutoExpand]鐨勪笅闈㈡坊鍔犱竴琛?<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">FNameEntry</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"><Name</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">su></span></div> <br><br>緲誨埌鏂囦歡鏈鍚庯紝娣誨姞浠ヤ笅浠g爜鍒版枃浠剁殑鏈鍚庯細<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000"><br></span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> Unreal鏍煎紡鐨勬暟緇?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">TArray<*>{<br>    children<br>    (<br>        #array<br>        (<br>            expr :    (($T1*)($c.Data))</span><span style="FONT-WEIGHT: bold; COLOR: #800000">[</span><span style="COLOR: #800000">$i</span><span style="FONT-WEIGHT: bold; COLOR: #800000">]</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">  <br>            size :    $c.ArrayNum<br>        )<br>    )<br>    <br>    preview<br>    ( <br>        #( <br>            </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> <br>            $c.ArrayNum </span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"><br>            </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">](</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> <br>            <br>            #array<br>            (<br>                expr : (($T1*)($c.Data))</span><span style="FONT-WEIGHT: bold; COLOR: #800000">[</span><span style="COLOR: #800000">$i</span><span style="FONT-WEIGHT: bold; COLOR: #800000">]</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">  <br>                size :     $c.ArrayNum<br>            )</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000"> <br>            </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>        )<br>    )<br>}<br><br></span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> Unreal鏍煎紡鐨凢Name</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">FName{<br>    preview(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">[</span><span style="COLOR: #800000">((FNameEntry**)FName.Names.Data)[$c.Index</span><span style="FONT-WEIGHT: bold; COLOR: #800000">]</span><span style="COLOR: #000000">])<br>        stringview(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">[</span><span style="COLOR: #800000">((FNameEntry**)FName.Names.Data)[$c.Index</span><span style="FONT-WEIGHT: bold; COLOR: #800000">]</span><span style="COLOR: #000000">])<br>}<br></span><span style="COLOR: #008000">;</span><span style="COLOR: #008000"> Unreal鏍煎紡鐨勫瓧絎︿覆</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">FString{<br>    preview(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">[</span><span style="COLOR: #800000">$c.Data,su</span><span style="FONT-WEIGHT: bold; COLOR: #800000">]</span><span style="COLOR: #000000">)<br>        stringview(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">[</span><span style="COLOR: #800000">$c.Data,su</span><span style="FONT-WEIGHT: bold; COLOR: #800000">]</span><span style="COLOR: #000000">)<br>}</span></div> <br>鐒跺悗錛屽埌璋冭瘯鍣ㄩ噷灝芥儏鐪婽Array銆丗String銆丗Name絳夌瓑騫蟲椂涓嶅鏄撶湅鐨勬暟鎹惂銆傛晥鏋滃浘灝變笉璐翠簡銆?br>姝ゆ柟娉曞彲浠ヤ婦涓鍙嶄笁錛岀敤鏉ュ疄鐜板浠繪剰鏁版嵁綾誨瀷鐨勬煡鐪嬨?br><br><br> <img src ="http://m.shnenglu.com/mybios/aggbug/85618.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2009-05-24 17:13 <a href="http://m.shnenglu.com/mybios/archive/2009/05/24/85618.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆婅蔣浠惰皟璇曘嬭涔﹂殢絎旂畫http://m.shnenglu.com/mybios/archive/2008/12/21/70006.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Sun, 21 Dec 2008 09:58:00 GMThttp://m.shnenglu.com/mybios/archive/2008/12/21/70006.htmlhttp://m.shnenglu.com/mybios/comments/70006.htmlhttp://m.shnenglu.com/mybios/archive/2008/12/21/70006.html#Feedback0http://m.shnenglu.com/mybios/comments/commentRss/70006.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/70006.html810欏?鍒╃敤DBGHELP鍑芥暟鍥炴函鏍堬紝鍙互鍙紪紼嬬殑璁板綍褰撴椂鐨勮皟鐢ㄦ爤璇︾粏淇℃伅
814欏?鍒╃敤RTL鍑芥暟鍥炴函鏍堬紝闈炲父蹇熺殑鍥炴函鏍堬紝浣嗗彧璁板綍鍑芥暟鎸囬拡錛屼笉璁板綍鍑芥暟鍚嶅拰鍑芥暟鍙傛暟錛屽悗鏈熷鏋滆鐪嬪嚱鏁板悕錛岄渶瑕侀氳繃PDB鏂囦歡鍜孶MDH榪欐牱鐨勫伐鍏鋒潵緲昏瘧鎴愬嚱鏁板悕銆備絾鏄浜庡ぇ閲忕殑璋冪敤閫熷害灝嗕細寰堝揩銆?br>815欏?璁茶堪騫跺疄鐜頒簡涓涓敤鏉ユ瑙嗘煇鍦板潃琚闂殑璁板綍錛岃兘璁板綍涓嬭繖涓湴鍧琚闂殑鏃墮棿銆佽皟鐢ㄥ爢鏍堢瓑絳変俊鎭?br>824欏?浠嬬粛浜嗕嬌鐢╓indows鎬ц兘鐩戣鍣ㄦ潵緙栧啓鎬ц兘鐩戣鍔熻兘鐨勬柟娉曪紙濡傜洃瑙嗘父鎴廎PS鍙樺寲錛?br>830欏?浠嬬粛浜?Gh/GH緙栬瘧寮鍏崇殑浣滅敤錛氱洃瑙嗘墍鏈夊嚱鏁扮殑榪涘嚭

]]>
銆婅蔣浠惰皟璇曘嬭涔﹂殢絎?/title><link>http://m.shnenglu.com/mybios/archive/2008/12/20/69933.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Sat, 20 Dec 2008 13:51:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2008/12/20/69933.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/69933.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2008/12/20/69933.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/69933.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/69933.html</trackback:ping><description><![CDATA[<p>鍑犱釜闈炲父鏈夌敤鐨勬妧鏈細<br>421欏?ETW 鏋舵瀯錛屾瘮杈冮傚悎鐢ㄦ潵璁板綍澶ч噺鏃ュ織<br>699欏?_heapchk()鍑芥暟鍙互鎵嬪伐媯鏌ュ爢鍐呭鏄惁鏈夌紦瀛樻孩鍑?br>661欏?浣庣鐗囧爢錛屽唴鏍哥駭鍒殑灝忓唴瀛樺垎閰嶅櫒<br>666欏?鏍堝洖婧暟鎹簱錛岀敤鏉ヨ褰曟墍鏈夊垎閰嶅唴瀛樻椂鐨勮皟鐢ㄦ爤淇℃伅銆?/p> <img src ="http://m.shnenglu.com/mybios/aggbug/69933.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2008-12-20 21:51 <a href="http://m.shnenglu.com/mybios/archive/2008/12/20/69933.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浠嬬粛鏈繎鏈熷嚭鐨勫ソ涔︺婅蔣浠惰皟璇曘?/title><link>http://m.shnenglu.com/mybios/archive/2008/12/13/69371.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Sat, 13 Dec 2008 14:18:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2008/12/13/69371.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/69371.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2008/12/13/69371.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/69371.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/69371.html</trackback:ping><description><![CDATA[銆婅蔣浠惰皟璇曘嬶紝鏄?008騫?鏈堜喚鍑虹殑鏂頒功錛屾垜瑙夊緱姣旇緝閫傚悎鐢–++鐢ㄤ簡姣旇緝闀挎椂闂寸殑浜虹湅錛岃繖鍙互鎻愰珮浠栦滑鐨勮皟璇曟按騫熾傚叾瀹烇紝璇勪環(huán)涓涓漢鏄惁鏄紪紼嬮珮鎵嬶紝涓昏榪樻槸鐪嬪綋紼嬪簭鍑洪棶棰樻椂璋冭瘯鑳藉姏銆?br>榪欐湰涔﹀湪褰撳綋緗戜笂鎵撴姌鍚庢槸96鍏冦?br>浠ヤ笅鏄繖鏈功鐨勪竴浜涗粙緇嶏細<br>ACM闄㈠+鍜岃皟璇曟妧鏈厛椹盝ack B.Dennis鏁欐巿鍋氬巻鍙插洖欏捐綆楁満鍜屾搷浣滅郴緇熼鍩熻祫娣變笓瀹禗avid A.Solomon鎾板啓搴忚█銆傝皟璇曢珮鎵嬬瑪鑰曚笁杞介泦鍗佷綑騫寸粡楠屾垚鐧句竾璦綃囷紝涓氬唴涓撳榧庡姏鐩稿姪錛屾眹浜斿崄騫寸簿鍗庤ˉ杞歡鐣岀┖鐧姐?br>銆銆鎮(zhèn)ㄥ皢瀛︿範鍒幫細<br>銆銆CPU鐨勮皟璇曟敮鎸侊紝鍖呮嫭寮傚父銆佹柇鐐廣佸崟姝ユ墽琛屻佸垎鏀洃瑙嗐丣TAG銆丮CE絳夈?br>銆銆Windows鎿嶄綔緋葷粺涓殑璋冭瘯璁炬柦錛屽寘鎷唴鏍歌皟璇曞紩鎿庛佺敤鎴鋒佽皟璇曚簣緋葷粺銆侀獙璇佸櫒銆丏r.Watson銆乄ER銆丒TW銆佹晠闅滆漿鍌ㄣ乄HEA絳夈?br>銆銆Visual C錛廋++緙栬瘧鍣ㄧ殑璋冭瘯鏀寔錛屽寘鎷紪璇戞湡媯鏌ャ佽繍琛屾湡媯鏌ワ紝浠ュ強璋冭瘯絎﹀彿銆?br>銆銆WinDBG璋冭瘯鍣ㄧ殑鍙戝睍鍘嗗彶銆佹ā鍧楃粨鏋勩佸伐浣滄ā鍨嬨佷嬌鐢ㄦ柟娉曘佷富瑕佽皟璇曞姛鑳界殑瀹炵幇緇嗚妭錛屼互鍙婇亶甯冨叏涔︾殑搴旂敤瀹炰緥銆?br>銆銆鍐呮牳璋冭瘯銆佺敤鎴鋒佽皟璇曘丣IT璋冭瘯銆佽繙紼嬭皟璇曠殑鍘熺悊銆佸疄鐜板拰鐢ㄦ硶銆傚紓甯哥殑姒傚康銆佸垎鍙戞柟娉曘佸鐞嗘柟娉曪紙SEH銆乂EH銆丆ppEH錛夛紝鏈鐞嗗紓甯革紝浠ュ強緙栬瘧鍣ㄧ紪璇戝紓甯稿鐞嗕唬鐮佺殑鏂規(guī)硶銆?br>銆銆璋冭瘯絎﹀彿鐨勪綔鐢ㄣ佷駭鐢熻繃紼嬨佸瓨鍌ㄦ牸寮忓拰浣跨敤鏂規(guī)硶銆傛爤鍜屽爢鐨勭粨鏋勫竷灞銆佸伐浣滃師鐞嗗拰鏈夊叧鐨勮蔣浠墮棶棰橈紝鍖呮嫭鏍堢殑鑷姩澧為暱鍜屾孩鍑猴紝緙擄紱涓尯婧㈠嚭錛屾孩鍑烘敾鍑伙紝鍐呭瓨娉勬紡錛屽爢宕╂簝絳夈?br>銆銆杞歡鐨勫彲璋冭瘯鎬у拰鎻愰珮鍙皟璇曟х殑鏂規(guī)硶銆?br>銆銆姝ゅ錛屼功涓繕璇犻噴浜嗗緢澶氳緝闅劇悊瑙g殑姒傚康錛屾濊冧簡涓緋誨垪鑰愪漢娣辨濆拰鍏鋒湁鏅亶鎰忎箟鐨勯棶棰樸傛湰涔︽槸瀵硅蔣浠惰皟璇曟妧鏈湪榪囧幓50騫翠腑鎵鍙栧緱鎴愬氨鐨勫叏闈㈠睍紺猴紝涔熸槸絎旇呮湰浜哄湪杞歡璁捐鍜岀郴緇熷紑鍙戠涓綰垮鎴?0澶氬勾鐨勭粡楠屾葷粨銆傛湰涔﹂傚悎姣忎竴浣嶅笇鏈涙繁鍒葷悊瑙h蔣浠跺拰鑷敱椹鵑┉杞歡鐨勪漢闃呰錛屼笉璁烘?zhèn)ㄦ槸鍚︾洿鎺ュ弬涓庤蒋錃g寮鍙戝拰嫻嬭瘯錛涗笉璁烘?zhèn)ㄦ槸鐑堔p蔣浠訛紝榪樻槸鎲庢仺杞歡錛涗笉璁烘?zhèn)ㄦ槸鎯冲彂鐜拌蒋錃g涓殑鐟曠柕錛岃繕鏄兂棰嗙暐鍏朵腑钑村惈鐨勬櫤鎱э紒<br>銆銆鏈功鐩撮潰杞歡宸ョ▼涓殑鏈鍥伴毦浠誨姟鈥斺斾睛閿?br>銆銆鍥寸粫杞歡涓栫晫涓殑鏈寮哄ぇ宸ュ叿鈥斺旇皟璇曞櫒<br>銆銆鍏ㄦ柟浣嶅睍紺轟簡杞歡璋冭瘯鎶鏈殑鏃犳瘮濞佸姏鍜屾棤絀烽瓍鍔?br>銆銆80涓ず渚嬬▼搴忕殑婧愮▼搴忔枃浠跺拰欏圭洰鏂囦歡<br>銆銆嫻忚絎﹀彿鏂囦歡鐨凷ymView宸ュ叿<br>銆銆涓庡唴鏍歌皟璇曞紩鎿庡璇濈殑KdTalker宸ュ叿<br>銆銆鐩存帴嫻忚鐢ㄦ埛鎬佽漿鍌ㄦ枃浠剁殑UdmpView宸ュ叿<br>銆銆鏄劇ずCPU鎵ц杞ㄨ抗錛堝垎鏀級鐨凜puwhere宸ュ叿<br>銆銆瑙傚療IDT銆丟DT鍜岀郴緇熷璞$殑SOZOOmer宸ュ叿<br>銆銆鏈功鏄杞歡璋冭瘯鎶鏈湪榪囧幓50騫翠腑鎵鍙栧緱鎴愬氨鐨勫叏闈㈠睍紺猴紝涔熸槸瀵逛綔鑰呮湰浜哄湪杞歡璁捐鍜岀郴緇熷紑鍙戠涓綰垮鎴?0澶氬勾鐨勭粡楠屾葷粨銆傚叏涔﹀叡鍒?綃?0绔狅紝閫夊彇浜嗗ぇ閲忓叿鏈変唬琛ㄦу拰鏅亶鎰忎箟鐨勬妧鏈粏鑺傝繘琛岃璁猴紝鍖呮嫭CPU鐨勮皟璇曟敮鎸併佹搷浣滅郴緇熺殑璋冭瘯鏀寔銆佺紪璇戝櫒鐨勮皟璇曟敮鎸併乄inDBG鍙婂叾瀹炵幇絳夛紝鏄涔犺蔣浠惰皟璇曟妧鏈殑瀹濊吹璧勬枡銆傝涔﹀彲渚涘悇澶т笓闄㈡牎浣滀負鏁欐潗浣跨敤錛屼篃鍙緵浠庝簨鐩稿叧宸ヤ綔鐨勪漢鍛樹綔涓哄弬鑰冪敤涔︿嬌鐢ㄣ? <img src ="http://m.shnenglu.com/mybios/aggbug/69371.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2008-12-13 22:18 <a href="http://m.shnenglu.com/mybios/archive/2008/12/13/69371.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>欖斿吔浜夐湼3鑷姩鎷兼帴鍦板艦娓叉煋婧愮爜涓庢墽琛岀▼搴忎笅杞?/title><link>http://m.shnenglu.com/mybios/archive/2008/10/31/65636.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Fri, 31 Oct 2008 11:51:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2008/10/31/65636.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/65636.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2008/10/31/65636.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/65636.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/65636.html</trackback:ping><description><![CDATA[榪欓噷鍙戠殑婧愮爜鏄拡瀵逛笂嬈$殑鏂囩珷鐨勬簮鐮乭ttp://m.shnenglu.com/mybios/archive/2008/10/26/65076.html<br /><a href="http://m.shnenglu.com/Files/mybios/婧愮爜涓庢墽琛岀▼搴?part01.rar">http://m.shnenglu.com/Files/mybios/婧愮爜涓庢墽琛岀▼搴?part01.rar</a><br /><a href="http://m.shnenglu.com/Files/mybios/婧愮爜涓庢墽琛岀▼搴?part02.rar">http://m.shnenglu.com/Files/mybios/婧愮爜涓庢墽琛岀▼搴?part02.rar</a><br /><a href="http://m.shnenglu.com/Files/mybios/婧愮爜涓庢墽琛岀▼搴?part03.rar">http://m.shnenglu.com/Files/mybios/婧愮爜涓庢墽琛岀▼搴?part03.rar</a><br /><a href="http://m.shnenglu.com/Files/mybios/婧愮爜涓庢墽琛岀▼搴?part04.rar">http://m.shnenglu.com/Files/mybios/婧愮爜涓庢墽琛岀▼搴?part04.rar</a><br /><a href="http://m.shnenglu.com/Files/mybios/婧愮爜涓庢墽琛岀▼搴?part05.rar">http://m.shnenglu.com/Files/mybios/婧愮爜涓庢墽琛岀▼搴?part05.rar</a><br /><br />鍙戠幇鏈夌殑浜鴻繍琛屼笉浜嗙▼搴忥紝鏄敱浜庢病瀹夎vc2008鐨剅edist瀵艱嚧鐨勩傝涓嬭澆瀹夎涔嬶細<br /><a >http://www.microsoft.com/downloads/details.aspx?FamilyID=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=zh-cn</a><br /><p style="margin-top: 10px; margin-bottom: 10px; box-sizing: border-box; line-height: 24px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif; font-size: 16px;">濡傛灉鏈枃瀵逛綘鐨勫紑鍙戞湁鎵甯姪錛屽茍涓斾綘鎵嬪ご鎭板ソ鏈夐浂閽便?/p><p style="margin-top: 10px; margin-bottom: 10px; box-sizing: border-box; line-height: 24px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif; font-size: 16px;">涓嶅鎵撹祻鎴戜竴鏉挅鍟★紝榧撳姳鎴戠戶緇垎浜紭縐鐨勬枃绔犮?br /><img src="http://m.shnenglu.com/images/cppblog_com/mybios/222.jpg" border="0" alt="" /><br /><br /><br /><br /></p><img src ="http://m.shnenglu.com/mybios/aggbug/65636.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2008-10-31 19:51 <a href="http://m.shnenglu.com/mybios/archive/2008/10/31/65636.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>欖斿吔浜夐湼3鐨勮嚜鍔ㄦ嫾鎺ュ湴褰㈡覆鏌撴柟寮?/title><link>http://m.shnenglu.com/mybios/archive/2008/10/26/65076.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Sun, 26 Oct 2008 04:16:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2008/10/26/65076.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/65076.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2008/10/26/65076.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/65076.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/65076.html</trackback:ping><description><![CDATA[<p align="left">婧愮爜宸插彂甯冿紝璇鋒墦寮涓嬭澆<a href="http://m.shnenglu.com/mybios/archive/2008/10/31/65636.html">http://m.shnenglu.com/mybios/archive/2008/10/31/65636.html</a><br />涓婃鍙戜簡涓繖鏍風殑鍥撅紝緇撴灉琚煇浜涗漢閯欒浜嗭紝寰堥儊闂峰晩銆?br /><br />鎴戜滑鎶婁竴涓瓟鍏?鐨勮崏鍦拌創(chuàng)鍥炬彁鍙栧嚭鏉ワ紝騫朵笖鐢ㄤ笅闈㈢殑鍒嗗潡鏂規(guī)硶鏉ユ爣紺烘瘡涓鍧楀皬璐村浘錛岀劧鍚庨氳繃涓縐嶇壒瀹氱殑鏂瑰紡鏉ョ粍緇囪繖浜涘皬璐村浘錛屽艦鎴愮湡姝g殑鍦拌〃璐村浘銆?br />欖斿吔浜夐湼緙栬緫鍣ㄤ腑鍒峰湴琛ㄦ椂錛屽埛涓鏍煎氨浼氬獎鍝嶅洓涓懆鍥寸殑娓叉煋鍧楋紝鍏蜂綋濡備綍褰卞搷錛熻鐪嬩笅鍥撅細<br /><br />榪欐槸璐村浘鐨勫垎鍧楃儲寮曟柟娉曪細<br /><img height="256" alt="" src="http://m.shnenglu.com/images/cppblog_com/mybios/Lords_Grass.tga.jpg" width="512" border="0" /><br /><br /><br /><br />閫氳繃欖斿吔浜夐湼鍦板浘緙栬緫鍣ㄧ偣涓涓嬪埛鍦拌〃鑽変箣鍚庯紝鍦ㄥ湴鍥句腑灝變細鍑虹幇涓灝忓潡緇胯壊鑽夊湴鍦拌〃錛岃娉ㄦ剰鍦ㄥ浘涓垜鐢ㄦ暟瀛?銆?銆?銆?鏉ヨ〃紺哄洓涓覆鏌撳潡瀵瑰簲鐨勮創(chuàng)鍥劇儲寮曪紝鑰岃繖涓?銆?銆?銆?鏄浐瀹氱殑銆備唬琛ㄧ殑鏄浉瀵逛簬絎斿埛浣嶇疆錛堢瑪鍒蜂綅緗槸鎸囧懆鍥村洓涓覆鏌撳潡涓棿浣嶇疆錛夋潵璇達紝宸︿笅瑙掔殑瑙掕惤璐村浘绱㈠紩鏄?錛涘彸涓嬭鐨勮钀借創(chuàng)鍥劇儲寮曟槸2錛涘乏涓婅鐨勮钀借創(chuàng)鍥劇儲寮曟槸4錛涘彸涓婅鐨勮钀借創(chuàng)鍥劇儲寮曟槸8銆傚涓嬪浘鎵紺猴細<br /><img height="465" alt="" src="http://m.shnenglu.com/images/cppblog_com/mybios/1.jpg" width="651" border="0" /><br /><br /><br />濡傛灉鍦ㄥ凡緇忔湁鑽夊湴鐨勫湴琛ㄦ梺杈瑰啀鐐逛竴涓嬪埛鍦拌〃錛屼細鍒鋒垚濡備笅鍥捐繖涓牱瀛愶細<br />鐪嬫槑鐧?+4=12娌℃湁錛熻繖閲屾槸涓や釜瑙掕惤璐村浘绱㈠紩鐩稿姞鍚庣殑緇撴灉錛屽緱鍒?2錛屽氨浠庢枃绔犲紑澶寸殑绱㈠紩璐村浘涓壘鍒?2瀵瑰簲鐨勫皬璐村浘璐翠笂鍘匯?br />2+1=3鍚岀悊錛岀敤涓や釜瑙掕惤璐村浘绱㈠紩鐩稿姞鍚庣殑緇撴灉3浠庣儲寮曡創(chuàng)鍥句腑鎵懼埌3瀵瑰簲鐨勫皬璐村浘璐翠笂鍘匯?br />榪欐牱寰楀埌鐨勬晥鏋滃氨浼氬彉鎴愬涓嬪浘錛?br /><img height="531" alt="" src="http://m.shnenglu.com/images/cppblog_com/mybios/2.jpg" width="923" border="0" /><br /><br /><br />榪欓噷鏈夋槸鏇村鏉傜殑鎯呭喌錛屾湁涓変釜瑙掕惤鐩稿姞錛?+8+4=13錛屼笉榪囬亾鐞嗛兘鏄竴鏍風殑銆?br /><img height="768" alt="" src="http://m.shnenglu.com/images/cppblog_com/mybios/3.jpg" width="1034" border="0" /><br /><br />鏈鍚庤涓涓嬪洓鍛ㄩ兘鏈夎創(chuàng)鍥劇殑鎯呭喌錛岀湅鍒頒腑闂寸瑪鍒蜂綅緗病鏈夛紵絎斿埛宸︿笂鏂規(guī)湁涓涓創(chuàng)鍥撅紝瀵瑰簲鐨勬槸璐村浘绱㈠紩涓殑0錛岃繖鏄洜涓轟粬鍥涗釜瑙掗兘濉厖浜嗭紝鎵浠ュ氨闇瑕佷粠0銆?6~31涓殢鏈洪夋嫨涓涓皬璐村浘璐翠笂鍘諱互瀹屾暣鐨勫~鍏呮暣涓覆鏌撳潡錛?br /><img height="768" alt="" src="http://m.shnenglu.com/images/cppblog_com/mybios/4.JPG" width="899" border="0" /><br /><br />鑷蟲璐村浘閫夋嫨鐨勬柟娉曞凡緇忚瀹屼簡銆?br />鑷充簬娓叉煋鐨勬柟娉曪紝閮芥槸澶у悓灝忓紓錛岃繖閲屽氨涓嶅璇翠簡銆?/p><br /><p style="margin-top: 10px; margin-bottom: 10px; box-sizing: border-box; line-height: 24px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif; font-size: 16px;">濡傛灉鏈枃瀵逛綘鐨勫紑鍙戞湁鎵甯姪錛屽茍涓斾綘鎵嬪ご鎭板ソ鏈夐浂閽便?/p><p style="margin-top: 10px; margin-bottom: 10px; box-sizing: border-box; line-height: 24px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif; font-size: 16px;">涓嶅鎵撹祻鎴戜竴鏉挅鍟★紝榧撳姳鎴戠戶緇垎浜紭縐鐨勬枃绔犮?br /><img src="http://m.shnenglu.com/images/cppblog_com/mybios/222.jpg" border="0" alt="" /><br /><br /><br /><br /></p><img src ="http://m.shnenglu.com/mybios/aggbug/65076.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2008-10-26 12:16 <a href="http://m.shnenglu.com/mybios/archive/2008/10/26/65076.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍒氬畬鎴愪簡涓涓熀浜嶰gre娓叉煋鐨勪笘鐣岀紪杈戝櫒錛屽彂鍥劇暀蹇?/title><link>http://m.shnenglu.com/mybios/archive/2008/03/09/44046.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Sun, 09 Mar 2008 14:55:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2008/03/09/44046.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/44046.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2008/03/09/44046.html#Feedback</comments><slash:comments>29</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/44046.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/44046.html</trackback:ping><description><![CDATA[<p>榪欎釜涓栫晫緙栬緫鍣紝浠庝竴寮濮嬭璁$殑鏃跺欏氨鑰冭檻浣跨敤鍗寵鍗蟲墍寰楃殑褰㈠紡鏉ュ疄鐜幫紝鍦板浘杞藉叆銆佷繚瀛樼瓑絳夋搷浣滄槸鐙珛灝佽鍦ㄤ竴涓彨DisplaySystem鐨凞ll涓紝鑰屼笘鐣岀紪杈戝櫒浣跨敤鎻掍歡鐨勫艦寮忔潵瀹炵幇鍚勭鍔熻兘錛屽錛氬湴褰㈢紪杈戞彃浠躲佺綉鏍兼彃浠躲佺墿浠剁紪杈戞彃浠躲佺幆澧冪紪杈戞彃浠剁瓑絳夈傜敤鎻掍歡鐨勫艦寮忓疄鐜扮殑濂藉寰堝錛屼互鍚庤澧炲姞鏂板姛鑳界殑鏃跺欎笘鐣岀紪杈戝櫒鏈韓鐨勪唬鐮佸氨涓嶉渶瑕佷慨鏀逛簡銆傝屼笖瀵逛簬鍥㈤槦寮鍙戜篃寰堟湁鍒╋紝涓涓漢璐熻矗涓涓彃浠剁殑寮鍙戝氨鍙互銆?br />鍙戝嚑涓浘錛?br /><br />浠ヤ笅鏄病鏈夊惎鐢ㄦ彃浠剁殑妯″紡錛?br /><img src="http://m.shnenglu.com/images/cppblog_com/mybios/WorldEditor.jpg" border="0" alt="" /><br /><br />浠ヤ笅鏄惎鐢ㄤ簡鍦板艦緙栬緫鍣ㄦ彃浠剁殑妯″紡錛?br /><img src="http://m.shnenglu.com/images/cppblog_com/mybios/TerrainEditor.jpg" border="0" alt="" /><br /><br />浠ヤ笅鏄惎鐢ㄤ簡鐗╀歡緙栬緫鍣ㄦ彃浠剁殑妯″紡錛?br /><img height="768" src="http://m.shnenglu.com/images/cppblog_com/mybios/NoPlugins.jpg" width="1257" border="0" alt="" /></p><br /><p style="margin-top: 10px; margin-bottom: 10px; box-sizing: border-box; line-height: 24px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif; font-size: 16px;">濡傛灉鏈枃瀵逛綘鐨勫紑鍙戞湁鎵甯姪錛屽茍涓斾綘鎵嬪ご鎭板ソ鏈夐浂閽便?/p><p style="margin-top: 10px; margin-bottom: 10px; box-sizing: border-box; line-height: 24px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif; font-size: 16px;">涓嶅鎵撹祻鎴戜竴鏉挅鍟★紝榧撳姳鎴戠戶緇垎浜紭縐鐨勬枃绔犮?br /><img src="http://m.shnenglu.com/images/cppblog_com/mybios/222.jpg" border="0" alt="" /><br /><br /><br /><br /></p><img src ="http://m.shnenglu.com/mybios/aggbug/44046.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2008-03-09 22:55 <a href="http://m.shnenglu.com/mybios/archive/2008/03/09/44046.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Ogre 鐨勬覆鏌撳埌綰圭悊鐨勫叧閿殑3涓楠?/title><link>http://m.shnenglu.com/mybios/archive/2007/12/27/39764.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Thu, 27 Dec 2007 13:06:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2007/12/27/39764.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/39764.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2007/12/27/39764.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/39764.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/39764.html</trackback:ping><description><![CDATA[<p>濂戒箙娌″啓鎶鏈殑涓滆タ浜嗐傜幇鍦ㄨ緱杞棿鍙堝洖鍒頒簡娣卞湷宸ヤ綔錛岃繕鏄仛鎴戝枩嬈㈢殑娓告垙寮鍙戙傚鐚偣涓滆タ緇欏ぇ瀹躲?/p> <p><br />1銆佸垱寤烘覆鏌撶洰鏍囩汗鐞嗭紝鍏抽敭瑕佹寚瀹歍U_RENDERTARGET鍙傛暟錛屽湪鍒涘緩榪欎釜娓叉煋鐩爣綰圭悊鐨勮繃紼嬩腑錛孫gre浼氳嚜鍔ㄨ皟鐢?nbsp; Root::getSingleton().getRenderSystem()->attachRenderTarget鎶婅繖涓汗鐞嗘坊鍔犲埌Root鐨勬覆鏌撶洰鏍囦腑錛屼篃灝辨槸璇存瘡甯ч兘浼氭覆鏌撳埌榪欎釜綰圭悊銆?br />TexturePtr texture = TextureManager::getSingleton().createManual( "RttTex", <br /> ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, TEX_TYPE_2D, <br /> 512, 512, 0, PF_R8G8B8, TU_RENDERTARGET );</p> <p>2銆佽幏寰楁覆鏌撶洰鏍囷紝鏈変簡娓叉煋鐩爣錛屾墠鑳界粰鐩爣鎸囧畾瑙嗗彛鍜屾憚鍍忔満<br />RenderTarget *rttTex = texture->getBuffer()->getRenderTarget();</p> <p>3銆佺粰榪欎釜娓叉煋鐩爣鎸囧畾鎽勫儚鏈猴紝鍋氫簡榪欐楠や箣鍚庯紝姣忓撫鏇存柊鏃跺氨浼氭妸榪欎釜鎽勫儚鏈虹湅鍒扮殑涓滆タ娓叉煋鍒皌exture涓?br />Viewport *v = rttTex->addViewport( mReflectCam );</p> <p>4銆丱K錛?/p><br /><p style="margin-top: 10px; margin-bottom: 10px; box-sizing: border-box; line-height: 24px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif; font-size: 16px;">濡傛灉鏈枃瀵逛綘鐨勫紑鍙戞湁鎵甯姪錛屽茍涓斾綘鎵嬪ご鎭板ソ鏈夐浂閽便?/p><p style="margin-top: 10px; margin-bottom: 10px; box-sizing: border-box; line-height: 24px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif; font-size: 16px;">涓嶅鎵撹祻鎴戜竴鏉挅鍟★紝榧撳姳鎴戠戶緇垎浜紭縐鐨勬枃绔犮?br /><img src="http://m.shnenglu.com/images/cppblog_com/mybios/222.jpg" border="0" alt="" /><br /><br /><br /><br /></p><img src ="http://m.shnenglu.com/mybios/aggbug/39764.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2007-12-27 21:06 <a href="http://m.shnenglu.com/mybios/archive/2007/12/27/39764.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>欖斿吔3璐村浘鏂規(guī)硶http://m.shnenglu.com/mybios/archive/2007/08/28/31043.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Tue, 28 Aug 2007 10:57:00 GMThttp://m.shnenglu.com/mybios/archive/2007/08/28/31043.htmlhttp://m.shnenglu.com/mybios/comments/31043.htmlhttp://m.shnenglu.com/mybios/archive/2007/08/28/31043.html#Feedback18http://m.shnenglu.com/mybios/comments/commentRss/31043.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/31043.html鍙兘璇磋繖涔堝浜嗐傚叕鍙告湁淇濆瘑鍒跺害銆傝瑙佽皡錛?br />

濡傛灉鏈枃瀵逛綘鐨勫紑鍙戞湁鎵甯姪錛屽茍涓斾綘鎵嬪ご鎭板ソ鏈夐浂閽便?/p>

涓嶅鎵撹祻鎴戜竴鏉挅鍟★紝榧撳姳鎴戠戶緇垎浜紭縐鐨勬枃绔犮?br />





]]>
緇堜簬瀹炵幇浜嗛瓟鍏?璐村浘綆楁硶錛屽彂鍥劇暀蹇?/title><link>http://m.shnenglu.com/mybios/archive/2007/08/28/31021.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Tue, 28 Aug 2007 07:00:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2007/08/28/31021.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/31021.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2007/08/28/31021.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/31021.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/31021.html</trackback:ping><description><![CDATA[欖斿吔3鐨勫湴褰㈣創(chuàng)鍥劇畻娉曢潪甯哥殑宸у銆備笉榪囷紝璁ょ湡瑙傜湅浠栫殑鍦板浘緙栬緫鍣ㄥ拰鐢ㄥ伐鍏峰鍑轟粬鐨勫湴褰㈣創(chuàng)鍥劇湅鐪嬶紝榪樻槸鍙互鎽稿嚭瑙勫緥鏉ョ殑銆?br /><br /><img height="627" alt="" src="http://m.shnenglu.com/images/cppblog_com/mybios/WC3.JPG" width="808" border="0" /><br /><div><p style="margin-top: 10px; margin-bottom: 10px; box-sizing: border-box; line-height: 24px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif; font-size: 16px;">濡傛灉鏈枃瀵逛綘鐨勫紑鍙戞湁鎵甯姪錛屽茍涓斾綘鎵嬪ご鎭板ソ鏈夐浂閽便?/p><p style="margin-top: 10px; margin-bottom: 10px; box-sizing: border-box; line-height: 24px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif; font-size: 16px;">涓嶅鎵撹祻鎴戜竴鏉挅鍟★紝榧撳姳鎴戠戶緇垎浜紭縐鐨勬枃绔犮?br /><img src="http://m.shnenglu.com/images/cppblog_com/mybios/222.jpg" border="0" alt="" /><br /><br /><br /><br /></p></div><img src ="http://m.shnenglu.com/mybios/aggbug/31021.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2007-08-28 15:00 <a href="http://m.shnenglu.com/mybios/archive/2007/08/28/31021.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍏充簬CEGUI鐨凷tring鐨勮皟璇曢棶棰?/title><link>http://m.shnenglu.com/mybios/archive/2007/07/29/28914.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Sun, 29 Jul 2007 02:17:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2007/07/29/28914.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/28914.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2007/07/29/28914.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/28914.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/28914.html</trackback:ping><description><![CDATA[CEGUI鐨凷tring涓嶆槸std::string鎴杝td::wstring錛岃屾槸鑷繁瀹炵幇鐨勪竴涓瓧絎︿覆綾伙紝浠栫殑鍔熻兘璺焥td鐨剆tring寰堟帴榪戙?br>浣嗘槸錛屼粬鏀寔unicode錛屽唴閮ㄥ瓨鍌ㄦ槸浣跨敤utf32緙栫爜瑙勮寖鏉ュ瓨鍌╱nicode瀛楃錛屼篃灝辨槸璇?nbsp;typedef  uint32 utf32; utf32*  d_buffer;鐢ㄨ繖涓?2浣嶆棤絎﹀彿鏁村瀷鐨勬暟緇勬潵淇濆瓨unicode瀛楃涓層備紭鐐規(guī)槸鏄捐屾槗瑙佺殑錛屽氨鏄笘鐣屼笂鎵鏈夊瓧絎﹂兘鍙互鍖呭泭榪涘幓錛屾瘯绔熸槸32浣嶅晩錛佷絾鏄紝緙虹偣涔熷嚭鏉ヤ簡錛屾湁涓ょ偣錛?br>絎竴銆佸唴瀛樺崰鐢ㄨ繃澶氾紝涓涓瓧絎﹀氨瑕佸崰4涓瓧鑺傦紝涔熷お嫻垂浜嗙偣錛?br>絎簩銆佽皟璇曚笉鏂逛究錛岀敱浜嶸S2005鐨勮皟璇曠獥鍙e彧鏀寔ansi鍜寀tf16鐨勬牸寮忥紝鎵浠ワ紝CEGUI鐨凷tring鍦ㄨ皟璇曞櫒涓彧鑳界湅鍒頒竴鍫嗘暟瀛楁暟緇勶紝鑰岀湅涓嶅埌瀛楃錛岃繖鏄緢閮侀椃鐨勶紝姣忔瑕佹煡鐪嬮兘瑕佺炕鍒板唴瀛橀偅閲岀湅錛岃屼笖榪樹竴鍫嗕貢鐮侊紝瓚呯駭楹葷儲銆?br><br>瑙e喅鍔炴硶錛氫慨鏀筍tring綾伙紝浣跨敤utf16鏉ヤ唬鏇緾EGUI鐨剈tf32銆?br>浼樼偣錛?br>瑙e喅浜嗗唴瀛樺崰鐢ㄨ繃澶氱殑闂錛屼竴涓瓧絎﹀彧瑕?涓瓧鑺傚氨鍙互浜嗭紱<br>瑙e喅浜嗚皟璇曢棶棰橈紝VS2005鐩存帴鏀寔utf16鐨勬樉紺恒?br>緙虹偣錛?br>鍙兘涓嶆敮鎸佸叏涓栫晫鐨勫瓧絎︼紝鍥犱負utf16涓嶈兘琛ㄧず瓚呰繃16浣嶇殑瀛楃錛屼絾鏄紝瀵逛簬澶у鏁板浗瀹剁殑瀛楃鏉ヨ錛屽凡緇忚凍澶熶簡錛屾瘯绔焪indows2000/xp涔熸槸鍩轟簬utf16緙栫爜鐨勩?br><br>鐒跺悗錛屼笅闈㈡槸淇敼鍚庣殑瀛楃涓茬被錛?a title=CEGUIString href="http://m.shnenglu.com/Files/mybios/CEGUIString.rar">CEGUIString</a><br> <img src ="http://m.shnenglu.com/mybios/aggbug/28914.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2007-07-29 10:17 <a href="http://m.shnenglu.com/mybios/archive/2007/07/29/28914.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍦╳indows涓嬩嬌鐢╬atch宸ュ叿鏇存柊婧愮爜http://m.shnenglu.com/mybios/archive/2007/07/28/28900.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Sat, 28 Jul 2007 09:09:00 GMThttp://m.shnenglu.com/mybios/archive/2007/07/28/28900.htmlhttp://m.shnenglu.com/mybios/comments/28900.htmlhttp://m.shnenglu.com/mybios/archive/2007/07/28/28900.html#Feedback4http://m.shnenglu.com/mybios/comments/commentRss/28900.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/28900.html浣嗘槸錛屾垜浠笅杞藉埌鐨刾atch鏂囦歡錛岃矊浼兼槸linux/unix鐨刣iff宸ュ叿鐢熸垚鐨勶紝瑕佺敤linux/unix鐨刾atch宸ュ叿鎵嶈兘鎶婅ˉ涓佹枃浠舵洿鏂板埌婧愮爜涓?br />鍚庢潵錛屾垜鍙戠幇浜嗕釜windows涓嬪彲浠ヤ嬌鐢ㄧ殑patch宸ュ叿錛岀綉鍧濡備笅錛?a >http://gnuwin32.sourceforge.net/packages/patch.htm
浣跨敤鏄緢綆鍗曠殑錛岀敤鍛戒護琛屾柟寮忔墽琛岋細
patch 婧愭枃浠?琛ヤ竵鏂囦歡

渚嬪鎴戜滑鏈夋簮鏂囦歡test.cpp錛屼笅杞戒簡涓ˉ涓佹枃浠秚est.patch錛岄偅涔堟墽琛宲atch test.cpp test.patch錛屽氨浼氳嚜鍔ㄦ妸patch閲岀殑鍐呭鏇存柊鍒皌est.cpp涓幓浜嗐?br />
PS錛歝ygwin璨屼技涔熸湁榪欎釜宸ュ叿鍚с傘備互鍓嶇湅榪囬噷闈㈠ソ鍍忚繕鏈塪iff宸ュ叿錛屽彲浠ョ敓鎴恜atch鏂囦歡錛屽懙鍛點?br />

濡傛灉鏈枃瀵逛綘鐨勫紑鍙戞湁鎵甯姪錛屽茍涓斾綘鎵嬪ご鎭板ソ鏈夐浂閽便?/p>

涓嶅鎵撹祻鎴戜竴鏉挅鍟★紝榧撳姳鎴戠戶緇垎浜紭縐鐨勬枃绔犮?br />





]]>
鍏充簬GOOF鐨勬柊鐗堟湰http://m.shnenglu.com/mybios/archive/2007/07/18/28250.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Wed, 18 Jul 2007 01:21:00 GMThttp://m.shnenglu.com/mybios/archive/2007/07/18/28250.htmlhttp://m.shnenglu.com/mybios/comments/28250.htmlhttp://m.shnenglu.com/mybios/archive/2007/07/18/28250.html#Feedback2http://m.shnenglu.com/mybios/comments/commentRss/28250.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/28250.html
Yeah, I'm currently hard at work on the core engine, as the editor is nearly complete. The major feature I need to add for the editor is the ability to add new object definitions without needing to go through text files, but I'm a bit burned out on the editor part so I'm taking a break and working on one of the biggest engine features that needs some work: handling meshes.

Basically I'm reworking the MeshGameObject class completely so it's more viable for large worlds.

As far as features go before I release alpha, the list is still sorta large.

1. Finish the physics system so that it can be used for character movement.
2. An attachment system to be able to specify attachment locations on an object and attach any other object to it.
3. Mesh animation, animation blending, animation sharing between objects.
4. Character class which plays animations based on current state (movement direction, velocity, jumping, strafing, etc.)
5. Redo the mesh system (in progress). This is a biggy and involves a lot crazy stuff that is too complex to explain in bullet point. Basically, will be using all of Ogre's advanced features for mesh lods, material lods, etc. but also tie into background resource loading, load only the lods that are necessary, track which lods are currently loaded, etc.
6. Ability to add, update and delete meta objects from the editor using property dialog functionality. Once a meta object is updated, call a function on all objects that use that meta data so they can update themselves with newest data.
7. Managed material system
8. Create plugins of all dlls and dynamically load.
9. Create a viewer application that is separate from the editor and can load any world file.
10. Update the lighting system, particle system, to use new fading code based on updated mesh code

Those are my major todos, once finished and tested I release alpha. I will likely update CVS after I get the meta objects finished though. I may also fit in the vegetation system before I release alpha. How long will the above list take? Based on my current speed of development, 3 months.

I have a core list of features that I think are necessary for an engine, and they include:

1. Physics simulation, character movement, vehicles, damage, explosions, breakable objects
2. Lighting - ambient occlusion, realtime lighting and shadows. Lighting manager is required to control ambient, shadows when moving from interior to exterior
3. Trees and vegetation
4. Dynamic environment. Sky transitioning, clouds, fog, global ambient, sun position and direction, sun glare, dynamic shadows
5. Networking using ReplicaNet. Run GOOF engine in server mode where it doesn't initialize any rendering systems. Update all objects to know whether they're being created on standalone server or not.
6. Sound management, 2d sounds, 3d sounds, sound line, background music.
7. Doors, triggers, elevators
8. In-game cutscenes
9. Background loading, resource garbage collection, forced loading
10. AI framework
11. Character inventory, equipping with 3 clothing types: shared skeleton, individual skeleton, attached to bone
12. Terrain with splatting

The above will take me years unless I have help
Smile

Oh yeah, the editor is very nice now, in my opinion.

Not only did I port to wxWidgets, I fixed and added a lot of general features to the GOOF Engine Editor Tool (the tool for creating scenes for the GOOF engine).

1. Multi select objects from the selection dialog
2. Ctrl drag to box select objects in the viewport, or Alt drag to box unselect, with selection lines to show what you're selecting.
3. Option to orient objects to the normal of the collided object when in drag mode. Means you can basically drag things up walls now if you're in a room and the object, such as a painting, will orient to the wall you drag it along.
4. Redid the movement axis manipulator so it now moves to exactly where you want it to move to instead of sliding along crazily.
5. Added a line that shows what you're linking to when you are in link mode.
6. Tree view for the select dialog, with scene hierarchy
7. Ability to click and edit partition properties from the same select dialog, and shows objects under their partition with the active partition listed at the top.
8. Obviously, all the wxWidgets stuff such as window snapping, toolbar, menu, automatic viewport resizing, view menu which lists windows, redid all the open/save functionality to support a standard file dialog, etc.

Fixed tons of bugs. Undo system works now. Linking and unlinking objects fixed. Deleting multiple objects fixed when there are parent/child relationships between objects. The movement axis manipulator fixed. Fixed dragging over other objects - the object used to jump around crazily.

Probably tons more as well, but this is what I remember off the top of my head.




]]>
鍏充簬GOOF鐨刡ug闂http://m.shnenglu.com/mybios/archive/2007/07/16/28157.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Mon, 16 Jul 2007 14:53:00 GMThttp://m.shnenglu.com/mybios/archive/2007/07/16/28157.htmlhttp://m.shnenglu.com/mybios/comments/28157.htmlhttp://m.shnenglu.com/mybios/archive/2007/07/16/28157.html#Feedback10http://m.shnenglu.com/mybios/comments/commentRss/28157.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/28157.html浣跨敤浜嗗嚑澶〨OOF錛屽彂鐜頒粬瀛樺湪寰堝bug鍟婏紝浠涔堢紦瀛樻孩鍑猴紝鏁扮粍瓚婄晫涔嬬被鐨勩傘傚緢鏄庢樉榪欎釜妗嗘灦娌℃湁鐪熸鐢ㄥ湪涓涓」鐩笂鐨勩傛垜鍒椾婦鍑犱釜澶ч棶棰樺惂銆傚ソ璁╁ぇ瀹跺埆鍒板紕板銆?br />bool EnvironmentGameSystem::save(DataElementPtr element)榪欎釜鍑芥暟娌℃湁瀹炵幇錛屾墍浠ユ棤娉曚繚瀛樼幆澧冧俊鎭?br />
榪樻湁
 void GridPartition::enumerateConnectedPartitions(vector<CorePartition*>& connected)
 {
  //get surrounding grid cells within a certain radius
  float loadRadius = mGridPartitionMgr->getGridCellLoadRadius();

  //enumerate partitions
  vector<CorePartition*> partitions;
  mGridPartitionMgr->enumeratePartitions(partitions);

  //iterate through and check distance
  for(vector<CorePartition*>::iterator itr = partitions.begin(); itr != partitions.end(); ++itr)
  {
   float distance = Vector3(getWorldPosition() - (*itr)->getWorldPosition()).length();
   // add by 鏉庨敠淇?2007-7-16
   // 涓嶈榪斿洖鑷繁浣滀負閭誨眳錛屼細浜х敓bug
   if(distance < loadRadius && *itr != this)
    connected.push_back(*itr);
  }
 }

鍐嶇粰鍑轟竴涓瘮杈冧弗閲嶇殑bug
GOOFTranslationManipulator.h涓殑
  // add by 鏉庨敠淇?2007-7-12
  // 涓嶈鐢ㄩ瓟鏈暟錛屾悶鍒扮紦瀛樻孩鍑?br />  SceneNode* mNode[AT_LAST];
  Entity* mEnt[AT_LAST];
  Entity* mConeEnt[AT_LAST];
  CollisionShapePtr mCol[AT_LAST];
  AxisManipulatorHandle* mHandle[AT_LAST];

鍙﹀錛孋orePartition涓殑setSkyboxMaterial銆乻etGlobalAmbient涔嬬被鐨勪唬鐮佽矊浼兼病鐢ㄣ傚噯澶囧純涔嬨?br />


    // add by 鏉庨敠淇?2007-7-16
    // 榪欎釜綆楁硶鏆傛椂鏈夐棶棰橈紝鍏堝睆钄斤紝浠ュ悗鍐嶆參鎱㈣В鍐?br />    //disable static geometry until it is fixed
    if(false)// getStaticGeometryRule() == SGR_ALWAYS || (getStaticGeometryRule() == SGR_WHEN_NOT_PROX_IMMEDIATE && getPartition()->getProximity() != CorePartition::PROX_IMMEDIATE))
    {
     willConvertToStaticGeometry = true;
     getPartition()->addObjectToConvertToStaticGeometry(this);
    }

]]>
鍩轟簬OGRE娓叉煋寮曟搸鐨勫湴褰㈡彃浠禤LSM2鐨勭紪杈戝櫒GOOFhttp://m.shnenglu.com/mybios/archive/2007/07/06/27620.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Fri, 06 Jul 2007 12:28:00 GMThttp://m.shnenglu.com/mybios/archive/2007/07/06/27620.htmlhttp://m.shnenglu.com/mybios/comments/27620.htmlhttp://m.shnenglu.com/mybios/archive/2007/07/06/27620.html#Feedback17http://m.shnenglu.com/mybios/comments/commentRss/27620.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/27620.html


]]>
緇忚繃灝嗚繎涓涓湀鐨勫姫鍔涳紝鏈嶅姟鍣ㄦ鏋剁粓浜庢惌寤鴻搗鏉ヤ簡http://m.shnenglu.com/mybios/archive/2007/06/05/25605.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Tue, 05 Jun 2007 15:12:00 GMThttp://m.shnenglu.com/mybios/archive/2007/06/05/25605.htmlhttp://m.shnenglu.com/mybios/comments/25605.htmlhttp://m.shnenglu.com/mybios/archive/2007/06/05/25605.html#Feedback20http://m.shnenglu.com/mybios/comments/commentRss/25605.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/25605.html濂戒箙娌℃洿鏂癰log浜嗗晩銆傛壘鍒版柊宸ヤ綔閮藉凡緇忓緢涔呬簡錛屾湰鏉ュ湪娣卞湷鍋氬緱濂藉ソ鐨勶紝鍏徃紿佺劧鍙堟惉鍒版澀宸炴潵浜嗭紝娌″姙娉曪紝璺熺潃鏉ヤ簡鏉窞銆傜幇鍦ㄦ垜鍋氬鎴風閫昏緫涓庢湇鍔″櫒寮曟搸鏋舵瀯涓璧鋒悶錛屽ソ鏅曞晩錛屽ぉ澶╁姞鐝仛銆傚垢濂藉鎴風鏄敤鐜版垚鐨勫紩鎿庯紝鍙槸錛屼笉澶枩嬈㈢幇鍦ㄨ繖涓紩鎿庯紝Torque game engine advance錛屾灦鏋勫疄鍦ㄥお宸簡錛屼互鍚庢湁鏈轟細涓瀹氳鎹㈡垚Ogre鎴朜ebula2鎵嶈鍟娿?br>
鐜板湪鍦ㄥ紑鍙戜竴嬈懼叏鏂扮殑MMORPG娓告垙錛岀幇鍦ㄦ槸欏圭洰绔嬮」闃舵錛岄渶瑕佸嚭鎶鏈紨紺猴紝娌″姙娉曞晩錛屾椂闂寸揣榪紝鎴戣窡鍙﹀涓涓▼搴忎富綆$敤浜嗗皢榪戜竴涓湀瀹屾垚浜嗛」鐩殑絎竴涓噷紼嬬銆傚畬鎴愪簡鐜╁鐧誨綍銆佽鑹插垱寤?鍒犻櫎銆佷漢鐗╄璧般佸浜哄湪綰褲佹墿鐢熸垚涓庤璧癆I絳夌瓑緗戠粶鍔熻兘浜嗭紝褰撶劧瀹㈡埛绔柟闈篃鍋氬ソ浜嗐傚彲鎯滈」鐩富綆′笉鏄垜錛屽浘涔熶笉鍏佽鎶撲笅鏉ュ晩錛屽涓嶈搗澶у浜嗐傛榪庡姞QQ錛?0743734浜ゆ祦MMORPG寮鍙戙?br>
鏄庡ぉ鐖哥埜瑕佸仛鑲洪儴鑲跨槫鍒囬櫎鎵嬫湳浜嗭紝紲濇効浠栦竴鍒囬『鍒╁晩錛岀瓑浠栫棅鎰堝悗鎴戝彂瑾撹璁╀粬榪囦笂騫哥鐨勬櫄騫寸敓媧匯傜鐖哥埜鍋ュ悍騫哥銆傘傘傚ぇ浼欎滑甯繖紲濈涓涓嬪惂錛岃阿璋㈠ぇ瀹朵簡銆?/p> 鐖哥埜錛岃鍘熻皡鍎垮瓙鎴戠殑涓嶅瓭錛岃礬閫旈仴榪滐紝涓嶈兘璧跺洖鏉ラ櫔鐫鎮(zhèn)ㄥ仛鎵嬫湳錛屾垜浠ュ悗涓瀹氫細濂藉ソ瀛濋『鎮(zhèn)ㄧ殑銆?

]]>
VS2005綾誨悜瀵肩殑闂http://m.shnenglu.com/mybios/archive/2006/12/31/17088.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Sun, 31 Dec 2006 07:51:00 GMThttp://m.shnenglu.com/mybios/archive/2006/12/31/17088.htmlhttp://m.shnenglu.com/mybios/comments/17088.htmlhttp://m.shnenglu.com/mybios/archive/2006/12/31/17088.html#Feedback7http://m.shnenglu.com/mybios/comments/commentRss/17088.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/17088.html榪欎細甯︽潵浠涔堥棶棰橈紵鎴戜粖澶╁氨閬囧埌浜嗕竴嬈°傚綋鎴戠敤VS2005綾誨悜瀵肩敓鎴愪竴涓被錛屽
class BaseClass
{
public:
聽聽聽聽BaseClass(){};
聽聽聽~BaseClass(){};
聽聽聽virtual void VFun() = 0;
}

鐒跺悗錛屽啀鐢熸垚涓涓被緇ф壙浜庝粬
class ProblemClass : public聽BaseClass
{
public:
聽聽聽聽ProblemClass (){};
聽聽聽~ProblemClass (){};
聽聽聽virtual void VFun(){};
}

鐒跺悗錛屾墽琛屼互涓嬩唬鐮侊細

BaseClass *pClass = new ProblemClass ;
delete pClass ;

濡傛棤浠ュ錛屽湪delete鐨勬椂鍊欏氨浼氬嚭鐜板爢閿欒


]]>
紜歡鍏煎鎬х殑闄烽槺錛孌rawIndexedPrimitiveUP鐨勭敤娉?/title><link>http://m.shnenglu.com/mybios/archive/2006/12/25/16840.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Mon, 25 Dec 2006 07:11:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2006/12/25/16840.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/16840.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2006/12/25/16840.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/16840.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/16840.html</trackback:ping><description><![CDATA[濂藉ソ鐨勪竴涓▼搴忥紝鍦ㄦ垜鐨勭數鑴戯紙ELSA X800 256M鏄懼崱錛変笂榪愯涓鍒囨甯革紝鎷垮埌鍒殑鐢佃剳錛?45G鍐呯疆鏄懼崱錛変笂銆傚晩銆傝姳灞忥綖锝炶刀蹇皟璇曪紝騫稿ソ鍏徃鐨勭數鑴戜篃鏈夎繖縐嶅唴緗樉鍗$殑鐢佃剳銆傝刀蹇敤榪滅▼璋冭瘯銆傝皝鐭ヨ繖涓璋冭瘯錛屽氨鑺變簡鎴戞暣鏁翠竴涓笂鍗堛傘傘傝刀蹇啓涓嬫潵銆傘傘?br /><br />鏈緇堟帓宸殑鍘熷洜鏄疍rawIndexedPrimitiveUP鏈鍚庝竴涓弬鏁?em>VertexStreamZeroStride</em> 錛岃繖涓弬鏁版槸鐢ㄦ潵鎸囧畾欏剁偣鎵鍗犵殑瀛楄妭鏁般傛垜鑷綔鑱槑鐨勬妸欏剁偣緇撴瀯鍚庡鍔犱簡涓涓嚜宸辯敤鐨勬暟鎹紝濡傦細姝e父鐨勯《鐐圭粨鏋?br />struct CUSTOMVERTEX<br />{<br />聽FLOAT x, y, z,rhw;<br />聽DWORD color;<br />聽float u,v;<br />};<br /><br />鎴戞敼浜嗕箣鍚庣殑欏剁偣緇撴瀯錛?br />struct CUSTOMVERTEX<br />{<br />聽FLOAT x, y, z,rhw;<br />聽DWORD color;<br />聽float u,v;<br />DWORD dwMyData; // 鐢ㄦ潵淇濆瓨鎴戣嚜宸辯敤鐨勬暟鎹?br />};<br /><br />緇撴灉錛屽湪鎴戠殑鏄懼崱涓婁竴鍒囨甯革紝榪欎釜鏁版嵁涔熸湁鐢紝鐒跺悗DrawIndexedPrimitiveUP鐨勬椂鍊欙紝涔熶細鏍規(guī)嵁鏈鍚庣殑鍙傛暟sizeof(CUSTOMVERTEX)欏哄埄鐨勮鍙栫浉搴旂殑欏剁偣銆備絾鏄紝鎷垮埌845G鐨勫唴緗樉鍗′笂灝辨媧昏姳灞忋傚悗鏉ョ粓浜庣煡閬撴槸榪欎釜鍘熷洜錛屼簬鏄В鍐沖姙娉曞氨鏄妸dwMyData鍘繪帀錛屾斁鍒伴《鐐圭粨鏋勫闈㈠幓銆?br /><br />欏轟究璇磋DrawIndexedPrimitiveUP鐨勭敤娉曪細<br /><strong>HRESULT DrawIndexedPrimitiveUP(</strong><br />聽 <b>D3DPRIMITIVETYPE</b><i>PrimitiveType</i><b>, // 鍥懼師鐨勭被鍨?/b><br />聽 <b>UINT</b><i>MinVertexIndex</i><b>,聽 //聽鎸囧畾0</b><br />聽 <b>UINT</b><i>NumVertices</i><b>,聽 // 鎸囧畾闇瑕佹覆鏌撶殑欏剁偣鐨勬暟閲忥紙濡備竴涓煩褰㈠彲浠ョ敱4涓《鐐圭粍鎴愶紝鐒跺悗閫氳繃欏剁偣绱㈠紩鏉ヨ揪鍒版覆鏌?涓笁瑙掑艦鐨勬晥鏋滐紝閭d箞榪欓噷灝卞簲璇ュ~鍐?錛岃屼笉鏄?錛?/b><br />聽 <b>UINT</b><i>PrimitiveCount</i><b>, // 瑕佹覆鏌撶殑鍥懼師鐨勬暟閲忥紙濡備竴涓煩褰紝鐢變袱涓笁瑙掑艦緇勬垚錛屽氨搴旇濉啓2錛?/b><br />聽 <b>CONST void *</b><i>pIndexData</i><b>, // 绱㈠紩鏁版嵁鎸囬拡</b><br />聽 <b>D3DFORMAT</b><i>IndexDataFormat</i><strong>, // 绱㈠紩鏁版嵁鏍煎紡錛屼竴鑸負D3DFMT_INDEX16鎴朌3DFMT_INDEX32</strong>聽<br />聽 <b>CONST void*</b><i>pVertexStreamZeroData</i><b>, // 欏剁偣鏁版嵁鎸囬拡</b><br />聽 <b>UINT</b><i>VertexStreamZeroStride // 欏剁偣澶у皬涓鑸負sizeof(欏剁偣緇撴瀯)</i><br /><b>);</b><br /><br />璁板緱榛樿鎯呭喌涓嬫覆鏌撲笁瑙掑艦鐨勯『搴忔槸閫嗘椂閽堢殑錛堝垵瀛﹁呯粡甯歌寖榪欎釜閿欒錛屾湰鏉ユ兂娓叉煋涓涓煩褰紝緇撴灉涓涓笁瑙掑艦欏烘椂闂淬佸彟涓涓笁瑙掑艦閫嗘椂閽堬紝緇撴灉娓叉煋鍑烘潵鍙湅鍒頒竴涓笁瑙掑艦浜嗭紝琚儗闈㈠墧闄ゆ帀浜嗭級銆?br /><img src ="http://m.shnenglu.com/mybios/aggbug/16840.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2006-12-25 15:11 <a href="http://m.shnenglu.com/mybios/archive/2006/12/25/16840.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>3D 寮曟搸涓殑 GUI 娓叉煋浼樺寲琛ュ畬http://m.shnenglu.com/mybios/archive/2006/12/24/16795.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Sun, 24 Dec 2006 06:14:00 GMThttp://m.shnenglu.com/mybios/archive/2006/12/24/16795.htmlhttp://m.shnenglu.com/mybios/comments/16795.htmlhttp://m.shnenglu.com/mybios/archive/2006/12/24/16795.html#Feedback1http://m.shnenglu.com/mybios/comments/commentRss/16795.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/16795.html闃呰鍏ㄦ枃

]]>
3D 寮曟搸涓?GUI 娓叉煋鐨勪紭鍖?/title><link>http://m.shnenglu.com/mybios/archive/2006/12/23/16778.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Sat, 23 Dec 2006 14:32:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2006/12/23/16778.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/16778.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2006/12/23/16778.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/16778.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/16778.html</trackback:ping><description><![CDATA[鍓嶅嚑澶╃殑BLOG涓浜嗕竴浜涙垜鐨?D寮曟搸GUI鐨勬覆鏌撻儴鍒嗗師鐞嗭紝榪欏嚑澶╁仛鍒癓istCtrl鎺т歡鐨勬椂鍊欙紝褰撴垜娣誨姞寰堝Item榪涘幓鐨勬椂鍊欙紙鍑犱箮婊″睆鐨?2Px姹夊瓧錛屼竴涓眽瀛椾袱涓笁瑙掑艦錛岀浉褰撲簬涓婁竾涓笁瑙掑艦浜嗭級錛孎PS闄嶅緱鍚撲漢錛孌ebug鐗堝彧鏈?8FPS錛孯elease鐗堜篃鍙湁60FPS銆傘備紭鍖栥佷紭鍖栥佽繕鏄紭鍖栵紒浼樺寲涔嬪悗錛孎PS緇堜簬杈懼埌浜嗕護浜烘弧鎰忕殑500FPS宸﹀彸浜嗐備笖鍚垜鎱㈡參璇存潵銆?br /><br />棣栧厛鏄敤鎴戠殑寮曟搸鍐呴儴鍓栨瀽鍒嗘瀽浜嗕唬鐮佺殑鐡墮錛圥rofile榪欎笢瑗跨湡鐨勬湁鐢ㄥ晩錛岃鎴戝緢瀹規(guī)槗灝辨壘鍒頒簡鎱㈢殑鍘熷洜錛屽弬瑙丟PG3 1.17銆婂疄鏃剁殑灞傛鍖栨ц兘璇勬祴銆嬶級錛屽彂鐜板鐞嗘椂闂翠富瑕佽Cache綆楁硶鍜屾覆鏌撲袱閮ㄤ喚鍗犱簡錛屼簬鏄紝鎴戝湪鎯籌紝娓叉煋鎱㈡槸姝e父鐨勶紙褰撴椂鐨勬兂娉曟瘮杈冨急鏅猴紝鍚庢枃鏈夋湳錛夛紝鎵浠ワ紝鎴戞墦綆椾粠Cache綆楁硶鐫鎵嬨傞鍏堟槸浼樺寲浜哃istCtrl鐨凜ache綆楁硶錛屾妸閭d簺鍦ㄥ睆騫曞鐨処tem鐨刅isible灞炴ц緗垚false錛堟垜鐨勭畻娉曚腑Visible涓篺alse錛孋ache閮ㄥ垎綆楁硶灝辯洿鎺ヨ煩榪囷級錛屼簬鏄熷害涓涓嬪瓙灝變笂鏉ヤ簡錛孯elease鐗堟湰杈懼埌浜?30FPS銆備絾鏄紝榪樻槸鎱㈠晩銆傛庝箞鍔烇紵鍓栨瀽涔嬪悗錛屽彂鐜板ぇ閮ㄥ垎鐨勫鐞嗘椂闂撮兘闆嗕腑鍦ㄦ覆鏌撻儴鍒嗭紝鎴戜箣鍓嶇殑鎯蟲硶鏄覆鏌撴參鏄甯哥殑錛屾墍浠ユ殏鏃舵棤娉曡В鍐熾傘傘?br /><br />涓嬬彮鐨勬椂鍊欙紝鍑哄幓閬涗簡涓鍦堬紝璺笂紿佺劧鎯沖埌浜嗘垜娓叉煋綆楁硶涓彟澶栦竴涓窡娓叉煋閫熷害鏈夊叧鐨勪笢瑗匡紝鍔ㄦ佷慨鏀歸《鐐規(guī)暟鎹紒闅鵑亾鏄繖閲岀殑鍘熷洜錛熷洖鏉ュ悗椹笂嫻嬭瘯錛屾妸鍔ㄦ佷慨鏀圭殑浠g爜灞忚斀錛岀洿鎺ユ瘡甯ф覆鏌?0000涓夎褰紝濡堝憖錛?000錛嬬殑FPS錛佸畬鍏ㄥ惁瀹氫簡鎴戜箣鍓嶇殑鎯蟲硶錛堟覆鏌撴參鏄甯哥殑錛夛紝鍞夛紝鎯蟲兂涔熸槸錛屾瘡縐掑崈涓囥佷笂浜夸釜涓夎褰㈢敓鎴愰熷害鐨勬樉鍗★紝瀵逛簬鍖哄尯涓涓囦釜涓夎褰㈡庝箞浼氭參鍛?..鏃㈢劧鎵懼埌鍘熷洜錛屽氨瑕佷紭鍖栧晩錛岀幇鍦ㄦ壘鍒板師鍥犳槸鍥犱負鍔ㄦ佷慨鏀歸《鐐瑰鑷達紝鎯沖埌浜嗕互鍓嶇湅榪囦竴綃囨枃绔犺欏剁偣鏁版嵁瀛樺偍鐨勪綅緗紙鍗矯reateVertexBuffer鐨凞3DPool鍙傛暟錛夛紝璇村埌鍋氬埌錛屾妸鍘熸潵鐨凞3DPOOL_MANAGED鏀規(guī)垚D3DPOOL_SYSMEMORY錛屽搰錛岄熷害涓涓嬪瓙鎻愬崌鍒?60FPS宸﹀彸錛佹兂璧鋒潵鍘熷洜涔熸槸綆鍗曠殑錛屾棦鐒惰姣忓撫Lock榪欎箞澶氭暟鎹紝閭d箞欏剁偣鏁版嵁闇瑕佷粠鏄懼瓨->CPU澶勭悊錛岀劧鍚嶤PU鎻愪氦鍥炴樉瀛橈紝鎬葷嚎浜ゆ崲涔熷お棰戠箒浜嗭紝濡傛灉鏀規(guī)垚SYSMEMORY鐨勮瘽錛屽氨鍙渶瑕佷粠CPU->鏄懼瓨灝卞彲浠ヤ簡銆?br /><br />鐒跺悗鎴戝張鎯籌紝鏈夋病鏈夋洿濂界殑浼樺寲鏂規(guī)硶錛熺瓟妗堟槸鏈夌殑銆傘傛渶蹇殑淇敼鍐呭瓨鏁版嵁鐨勬柟娉曟槸浠涔堬紵褰撶劧鏄洿鎺ヨ鍐欏唴瀛樺晩錛侀偅涔堟垜鎯沖埌浜咲rawPrimitiveUP錛佹妸欏剁偣鏁版嵁鐩存帴new鍑烘潵錛岀劧鍚嶥rawPrimitiveUP鎻愪氦錛佹敼鎴愯繖鏍峰悗錛岄熷害鍐嶅害鎻愬崌錛佽揪鍒版儕浜虹殑500FPS錛?br /><br />鏈鍚庯紝鎴戞妸DrawPrimitiveUP鏀規(guī)垚DrawIndexedPrimitiveUP錛岄偅涔堥《鐐規(guī)暟閲忎篃鍑忓皯浜嗐備絾鏄鎬殑鏄熷害緙烘病鏈夋洿蹇紝鍙嶈屾參浜嗕竴鐐圭偣錛堟參浜?锝?0FPS宸﹀彸錛夛紝浣嗘槸錛屾垜鐢ㄤ簡DrawIndexedPrimitiveUP錛屾垜涔嬪悗榪樻湁鏇村ソ鐨勪紭鍖栫畻娉曞噯澶囧疄鐜般傞氳繃DrawIndexedPrimitiveUP錛屼絾鏄繕娌″仛濂姐傘傛墍浠ュ厛鍗栦釜鍏沖瓙浜嗐傛槑澶╂悶濂界殑璇濆啀鍐橞log銆?br /><br />鍞夛紝鍥炲ご鐪嬩簡涓嬭嚜宸卞啓鐨勪笢瑗匡紝涔變竷鍏碂銆傞兘涓嶇煡閬撴湁娌℃湁浜虹湅寰楁噦鍟娿備笉綆′簡銆傜煡涔嬩負鐭ヤ箣錛屼笉鐭ヤ負涓嶇煡鍚с傚懙鍛碉紝鐪嬩笉鎳傜殑璇瘋瘎璁轟竴涓嬨?br /><br />鍐欎唬鐮佸幓浜嗭綖锝?img src ="http://m.shnenglu.com/mybios/aggbug/16778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2006-12-23 22:32 <a href="http://m.shnenglu.com/mybios/archive/2006/12/23/16778.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浠婂ぉ紕板埌浜哃INK2005鐨勯棶棰?/title><link>http://m.shnenglu.com/mybios/archive/2006/12/22/16719.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Fri, 22 Dec 2006 03:14:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2006/12/22/16719.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/16719.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2006/12/22/16719.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/16719.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/16719.html</trackback:ping><description><![CDATA[鐑︿漢鐨勯敊璇傘傛悶浜嗕竴涓灝忔椂鎵嶈В鍐籌紝鍐欎笅鏉ヨ褰曚竴涓嬨?br /><br />瑙e喅鍔炴硶錛氫繚璇侀渶瑕侀摼鎺ョ殑鍑犱釜欏圭洰鐨勮繍琛屾椂搴撲嬌鐢ㄥ悓涓涓被鍨嬪氨O(jiān)K浜嗭紒渚嬪鎴戠殑宸ョ▼涓湁GameCore銆丳lugin_D3D9RenderSystem銆丳lugin_Win32Platform涓変釜宸ョ▼錛岄偅涔堝氨鍘昏緗瘡涓伐紼嬬殑C/C++ ->浠g爜鐢熸垚->榪愯鏃跺簱錛岀粺涓璁劇疆鎴?#8220;澶氱嚎紼?DLL(/MD)”錛屽氨鍙互浜嗐傚鏋滃叾涓竴涓笉鏄疢D錛屽氨浼氬嚭鐜頒互涓嬬殑閿欒銆傚緢鐑︿漢銆傚笇鏈涘悓鏍烽亣鍒拌繖涓棶棰樼殑鏈嬪弸鑳藉皯璧板集璺?br /><br />浠ヤ笅鏄摼鎺ラ敊璇俊鎭細<br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: int __thiscall std::ios_base::width(int)" (<a href="mailto:?width@ios_base@std@@QAEHH@Z">?width@ios_base@std@@QAEHH@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: int __thiscall std::ios_base::width(void)const " (<a href="mailto:?width@ios_base@std@@QBEHXZ">?width@ios_base@std@@QBEHXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: int __thiscall std::ios_base::flags(void)const " (<a href="mailto:?flags@ios_base@std@@QBEHXZ">?flags@ios_base@std@@QBEHXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: bool __thiscall std::ios_base::good(void)const " (<a href="mailto:?good@ios_base@std@@QBE_NXZ">?good@ios_base@std@@QBE_NXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: int __thiscall std::ios_base::rdstate(void)const " (<a href="mailto:?rdstate@ios_base@std@@QBEHXZ">?rdstate@ios_base@std@@QBEHXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: static unsigned int __cdecl std::char_traits<char>::length(char const *)" (<a href="mailto:?length@?$char_traits@D@std@@SAIPBD@Z">?length@?$char_traits@D@std@@SAIPBD@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "class std::basic_ostream<wchar_t,struct std::char_traits<wchar_t> > & __cdecl std::operator<<<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(class std::basic_ostream<wchar_t,struct std::char_traits<wchar_t> > &,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (<a href="mailto:??$?6_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z">??$?6_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: wchar_t __thiscall std::basic_ios<wchar_t,struct std::char_traits<wchar_t> >::fill(void)const " (<a href="mailto:?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ">?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > __thiscall std::basic_ostringstream<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::str(void)const " (<a href="mailto:?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ">?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::basic_ostringstream<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::basic_ostringstream<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(int)" (<a href="mailto:??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z">??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: class std::basic_ostream<wchar_t,struct std::char_traits<wchar_t> > & __thiscall std::basic_ostream<wchar_t,struct std::char_traits<wchar_t> >::operator<<(int)" (<a href="mailto:??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z">??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (<a href="mailto:??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z">??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: void __thiscall std::basic_ostream<wchar_t,struct std::char_traits<wchar_t> >::_Osfx(void)" (<a href="mailto:?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ">?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: class std::basic_ostream<wchar_t,struct std::char_traits<wchar_t> > * __thiscall std::basic_ios<wchar_t,struct std::char_traits<wchar_t> >::tie(void)const " (<a href="mailto:?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ">?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: void __thiscall std::basic_streambuf<wchar_t,struct std::char_traits<wchar_t> >::_Lock(void)" (<a href="mailto:?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ">?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: void __thiscall std::basic_streambuf<wchar_t,struct std::char_traits<wchar_t> >::_Unlock(void)" (<a href="mailto:?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ">?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: unsigned short __thiscall std::basic_streambuf<wchar_t,struct std::char_traits<wchar_t> >::sputc(wchar_t)" (<a href="mailto:?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z">?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::~basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(void)" (<a href="mailto:??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ">??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Plugin_Win32Platform.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(wchar_t const *)" (<a href="mailto:??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z">??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Plugin_Win32Platform.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(void)" (<a href="mailto:??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ">??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: void __thiscall std::basic_ostringstream<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::`vbase destructor'(void)" (<a href="mailto:??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ">??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: class std::basic_ostream<wchar_t,struct std::char_traits<wchar_t> > & __thiscall std::basic_ostream<wchar_t,struct std::char_traits<wchar_t> >::flush(void)" (<a href="mailto:?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ">?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: class std::basic_streambuf<wchar_t,struct std::char_traits<wchar_t> > * __thiscall std::basic_ios<wchar_t,struct std::char_traits<wchar_t> >::rdbuf(void)const " (<a href="mailto:?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ">?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: void __thiscall std::basic_ios<wchar_t,struct std::char_traits<wchar_t> >::setstate(int,bool)" (<a href="mailto:?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z">?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: class std::locale __thiscall std::ios_base::getloc(void)const " (<a href="mailto:?getloc@ios_base@std@@QBE?AVlocale@2@XZ">?getloc@ios_base@std@@QBE?AVlocale@2@XZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: static unsigned int __cdecl std::ctype<wchar_t>::_Getcat(class std::locale::facet const * *)" (<a href="mailto:?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z">?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: wchar_t __thiscall std::ctype<wchar_t>::widen(char)const " (<a href="mailto:?widen@?$ctype@_W@std@@QBE_WD@Z">?widen@?$ctype@_W@std@@QBE_WD@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: class std::locale::facet const * __thiscall std::locale::_Getfacet(unsigned int)const " (<a href="mailto:?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z">?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::locale::~locale(void)" (<a href="mailto:??1locale@std@@QAE@XZ">??1locale@std@@QAE@XZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: void __thiscall std::locale::facet::_Register(void)" (<a href="mailto:?_Register@facet@locale@std@@QAEXXZ">?_Register@facet@locale@std@@QAEXXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: void __thiscall std::locale::facet::_Incref(void)" (<a href="mailto:?_Incref@facet@locale@std@@QAEXXZ">?_Incref@facet@locale@std@@QAEXXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::locale::id::operator unsigned int(void)" (<a href="mailto:??Bid@locale@std@@QAEIXZ">??Bid@locale@std@@QAEIXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: static unsigned short __cdecl std::char_traits<wchar_t>::eof(void)" (<a href="mailto:?eof@?$char_traits@_W@std@@SAGXZ">?eof@?$char_traits@_W@std@@SAGXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: static bool __cdecl std::char_traits<wchar_t>::eq_int_type(unsigned short const &,unsigned short const &)" (<a href="mailto:?eq_int_type@?$char_traits@_W@std@@SA_NABG0@Z">?eq_int_type@?$char_traits@_W@std@@SA_NABG0@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "bool __cdecl std::operator<<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (<a href="mailto:??$?M_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z">??$?M_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32RenderWindow.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "protected: wchar_t const * __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::_Myptr(void)const " (<a href="mailto:?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IBEPB_WXZ">?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IBEPB_WXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Plugin_Win32Platform.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: wchar_t const * __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::c_str(void)const " (<a href="mailto:?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ">?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32LogSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "protected: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Myptr(void)const " (<a href="mailto:?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ">?_Myptr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IBEPBDXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " (<a href="mailto:?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ">?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (<a href="mailto:?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ">?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (<a href="mailto:??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ">??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (<a href="mailto:??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z">??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (<a href="mailto:??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z">??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: bool __thiscall std::ios_base::fail(void)const " (<a href="mailto:?fail@ios_base@std@@QBE_NXZ">?fail@ios_base@std@@QBE_NXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > & __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::erase(unsigned int,unsigned int)" (<a href="mailto:?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II@Z">?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@II@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Plugin_Win32Platform.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: void __thiscall std::basic_ios<wchar_t,struct std::char_traits<wchar_t> >::clear(int,bool)" (<a href="mailto:?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z">?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: unsigned int __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::size(void)const " (<a href="mailto:?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ">?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Plugin_Win32Platform.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "protected: wchar_t * __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::_Myptr(void)" (<a href="mailto:?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEPA_WXZ">?_Myptr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEPA_WXZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Plugin_Win32Platform.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (<a href="mailto:??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ">??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: int __thiscall std::basic_streambuf<wchar_t,struct std::char_traits<wchar_t> >::sputn(wchar_t const *,int)" (<a href="mailto:?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPB_WH@Z">?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPB_WH@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: static unsigned int __cdecl std::char_traits<wchar_t>::length(wchar_t const *)" (<a href="mailto:?length@?$char_traits@_W@std@@SAIPB_W@Z">?length@?$char_traits@_W@std@@SAIPB_W@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Plugin_Win32Platform.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::assign(char const *,unsigned int)" (<a href="mailto:?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z">?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::append(char const *,unsigned int)" (<a href="mailto:?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z">?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />libcpmt.lib(ios.obj) : error LNK2005: "public: static void __cdecl std::ios_base::_Addstd(class std::ios_base *)" (<a href="mailto:?_Addstd@ios_base@std@@SAXPAV12@@Z">?_Addstd@ios_base@std@@SAXPAV12@@Z</a>) 宸茬粡鍦?msvcprt.lib(MSVCP80.dll) 涓畾涔?br />libcpmt.lib(ios.obj) : error LNK2005: "private: static void __cdecl std::ios_base::_Ios_base_dtor(class std::ios_base *)" (<a href="mailto:?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z">?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z</a>) 宸茬粡鍦?msvcprt.lib(MSVCP80.dll) 涓畾涔?br />libcpmt.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Getgloballocale(void)" (<a href="mailto:?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ">?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ</a>) 宸茬粡鍦?msvcprt.lib(MSVCP80.dll) 涓畾涔?br />libcpmt.lib(locale0.obj) : error LNK2005: "private: static void __cdecl std::locale::facet::facet_Register(class std::locale::facet *)" (<a href="mailto:?facet_Register@facet@locale@std@@CAXPAV123@@Z">?facet_Register@facet@locale@std@@CAXPAV123@@Z</a>) 宸茬粡鍦?msvcprt.lib(MSVCP80.dll) 涓畾涔?br />libcpmt.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_dtor(class std::_Locinfo *)" (<a href="mailto:?_Locinfo_dtor@_Locinfo@std@@SAXPAV12@@Z">?_Locinfo_dtor@_Locinfo@std@@SAXPAV12@@Z</a>) 宸茬粡鍦?msvcprt.lib(MSVCP80.dll) 涓畾涔?br />libcpmt.lib(locale0.obj) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(char const *)" (<a href="mailto:??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z">??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z</a>) 宸茬粡鍦?msvcprt.lib(MSVCP80.dll) 涓畾涔?br />libcpmt.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Init(void)" (<a href="mailto:?_Init@locale@std@@CAPAV_Locimp@12@XZ">?_Init@locale@std@@CAPAV_Locimp@12@XZ</a>) 宸茬粡鍦?msvcprt.lib(MSVCP80.dll) 涓畾涔?br />libcpmt.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_ctor(class std::_Locinfo *,char const *)" (<a href="mailto:?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@PBD@Z">?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@PBD@Z</a>) 宸茬粡鍦?msvcprt.lib(MSVCP80.dll) 涓畾涔?br />libcpmt.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::_Lockit(int)" (<a href="mailto:??0_Lockit@std@@QAE@H@Z">??0_Lockit@std@@QAE@H@Z</a>) 宸茬粡鍦?msvcprt.lib(MSVCP80.dll) 涓畾涔?br />libcpmt.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (<a href="mailto:??1_Lockit@std@@QAE@XZ">??1_Lockit@std@@QAE@XZ</a>) 宸茬粡鍦?msvcprt.lib(MSVCP80.dll) 涓畾涔?br />msvcprt.lib(MSVCP80.dll) : error LNK2005: "public: class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > & __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >::assign(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (<a href="mailto:?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z">?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@@Z</a>) 宸茬粡鍦?Plugin_Win32Platform.lib(Win32InputSystem.obj) 涓畾涔?br />   姝e湪鍒涘緩搴?../Lib/GameCore.lib 鍜屽璞?../Lib/GameCore.exp<br />../Bin/GameCore.dll : fatal error LNK1169: 鎵懼埌涓涓垨澶氫釜澶氶噸瀹氫箟鐨勭鍙?br /><div><p style="margin-top: 10px; margin-bottom: 10px; box-sizing: border-box; line-height: 24px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif; font-size: 16px;">濡傛灉鏈枃瀵逛綘鐨勫紑鍙戞湁鎵甯姪錛屽茍涓斾綘鎵嬪ご鎭板ソ鏈夐浂閽便?/p><p style="margin-top: 10px; margin-bottom: 10px; box-sizing: border-box; line-height: 24px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif; font-size: 16px;">涓嶅鎵撹祻鎴戜竴鏉挅鍟★紝榧撳姳鎴戠戶緇垎浜紭縐鐨勬枃绔犮?br /><img src="http://m.shnenglu.com/images/cppblog_com/mybios/222.jpg" border="0" alt="" /><br /><br /><br /><br /></p></div><img src ="http://m.shnenglu.com/mybios/aggbug/16719.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2006-12-22 11:14 <a href="http://m.shnenglu.com/mybios/archive/2006/12/22/16719.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>榪欐鏃墮棿寮鍙?D寮曟搸鍟婏紝姝e湪鍋欸UI閮ㄥ垎http://m.shnenglu.com/mybios/archive/2006/12/19/16630.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Tue, 19 Dec 2006 13:30:00 GMThttp://m.shnenglu.com/mybios/archive/2006/12/19/16630.htmlhttp://m.shnenglu.com/mybios/comments/16630.htmlhttp://m.shnenglu.com/mybios/archive/2006/12/19/16630.html#Feedback10http://m.shnenglu.com/mybios/comments/commentRss/16630.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/16630.html
鎺ヤ笅鏉ョ殑涓孌墊棩瀛愰噷錛屾槸鏃跺欑戶緇3D鐨勪笢瑗夸簡錛屼簬鏄悓鐢熶簡涓仛娓告垙寮曟搸鐨勬兂娉曘傛垜鏄釜鎯沖仛灝卞仛鐨勪漢錛岃櫧鐒舵垜涔熺煡閬撹嚜宸辨槸涓嶈嚜閲忓姏錛屼絾鏄紝鍙鎴戣偗鍘誨仛錛屽嵆浣垮仛涓嶅ソ錛屼篃璧風爜鑳藉鍒頒笢瑗垮晩錛屾妸瀛﹁繃鐨勪笢瑗挎嬁鏉ョ敤涓鐣紝灝辮兘鏈夋劅瑙変簡銆?br />
璇磋寮曟搸閮ㄥ垎鐨勬瀯寤猴紝寮曟搸閮ㄥ垎鐨凢rameWork涓昏鍙傝冧簡GPG3鐨?.2閭d釜妗嗘灦妯″紡錛岄噰鐢║nicode緙栬瘧錛屾劅瑙変笂閭d釜妯″紡姣旇緝濂界敤錛屼絾鏄お澶嶆潅浜嗙偣錛屼簬鏄垜綆鍖栦簡浠栵紝鍩烘湰涓婂彧淇濈暀浜嗕換鍔$郴緇熴備嬌鐢ㄥ鉤鍙版棤鍏崇殑鎻掍歡鏂瑰紡鎶奧in32鍜孌irect3D9鐨勬ā鍧楀仛浜嗗嚭鏉ワ紙褰撶劧鍙皝瑁呬簡涓灝忛儴鍒嗗嚱鏁幫級錛屾妸Ogre鐨勫熀紜搴撳叏閮ㄦ嬁鏉ヤ富涔夛紙鍝堝搱錛屼富瑕佸氨鏄暟瀛﹀簱銆佸伐鍏峰簱絳夌瓑錛夈傝屽0闊沖紩鎿庝篃鐣欎簡鎺ュ彛錛屽緢濂芥墿灞曚簡銆?br />
鐒跺悗錛岀幇鍦ㄦ鍦ㄥ仛GUI閮ㄥ垎錛屼富瑕佽繕鏄璇碐UI鐨勬覆鏌撻儴鍒嗗惂銆侴UI鍏朵腑鏈変袱涓垜璁や負姣旇緝鍏抽敭鐨勫湴鏂癸紝鍏朵竴鏄覆鏌撴枃瀛楅儴鍒嗭紝鍏朵簩鏄覆鏌撶獥鍙i儴鍒嗐備笅闈㈣璇存垜鐨勫仛娉?br />鏂囧瓧娓叉煋閮ㄥ垎錛?br />鎴戠殑鍋氭硶鏄嬌鐢‵reeType2璇誨彇TTF鏂囦歡錛岀劧鍚庡綋瑕佹覆鏌撴枃瀛楃殑鏃跺欙紝鐪嬪摢涓敤鍒扮殑鏂囧瓧灝眑oad鍝釜鏂囧瓧錛屽厛鑾峰緱榪欎釜鏂囧瓧鐨勫ぇ灝忥紝鐒跺悗鍦ㄨ創(chuàng)鍥句腑鎵懼埌涓涓┖闂茬殑鍖哄煙錛堟垜鐨勮創(chuàng)鍥懼ぇ灝忔槸512脳512錛屼篃鍙互璁劇疆錛夛紝鐒跺悗blt鍒拌創(chuàng)鍥句腑錛岀湡姝f覆鏌撶殑鏃跺欏氨鎶婅繖涓創(chuàng)鍥劇汗鐞嗗潗鏍囪創(chuàng)鍒頒袱涓笁瑙掑艦涓婂氨瀹屾垚浜嗕竴涓枃瀛楃殑娓叉煋浜嗐?br />鍦ㄨ創(chuàng)鍥句腑鎵劇┖闂插尯鍩熸垜鏈変釜姣旇緝鐗瑰埆鐨勫仛娉曪紝灝辨槸姣忎釜闇瑕佹覆鏌撶殑鏂囧瓧緇存姢涓涓猂efCount寮曠敤璁℃暟錛屼緥濡備竴涓睆騫曢噷10涓滄垜鈥濆瓧錛岄偅涔堚滄垜鈥濈殑寮曠敤璁℃暟灝辨槸10錛屽綋鈥滄垜鈥濆瓧涓嶉渶瑕佸啀娓叉煋鐨勬椂鍊欙紙寮曠敤璁℃暟涓?錛夛紝姝ゆ枃瀛楃殑璐村浘鍖哄煙灝卞彲浠ヨ鍏朵粬鏂囧瓧鎵瑕嗙洊銆?br />紿楀彛娓叉煋閮ㄥ垎錛?br />

class聽GAMECORE_EXPORT聽GUIRenderCache
{
protected:
聽聽聽聽
//聽涓嶅厑璁告樉寮忓垱寤猴紝鍙彲浠ョ戶鎵?/span>
聽聽聽聽GUIRenderCache(void);
public:
聽聽聽聽
virtual~GUIRenderCache(void);

聽聽聽聽
//聽娣誨姞鍒版覆鏌撻槦鍒?/span>
聽聽聽聽void聽AddCache(const聽GUIRenderQuad&聽quad)
聽聽聽聽
{
聽聽聽聽聽聽聽聽m_vtGUIRenderQuad.insert(GUIRenderQuadPtr(
new聽GUIRenderQuad(quad)));
聽聽聽聽}



聽聽聽聽
//聽娓叉煋闇瑕丆ache闃熷垪
聽聽聽聽void聽RenderCache(void)
聽聽聽聽
{
聽聽聽聽聽聽聽聽
//聽浠庢柊Cache闃熷垪
聽聽聽聽聽聽聽聽if(m_bDirty)
聽聽聽聽聽聽聽聽
{
聽聽聽聽聽聽聽聽聽聽聽聽ClearCacheList();
聽聽聽聽聽聽聽聽聽聽聽聽DoCache();
聽聽聽聽聽聽聽聽聽聽聽聽m_bDirty聽
=false;
聽聽聽聽聽聽聽聽}

聽聽聽聽聽聽聽聽
//聽娣誨姞鍒版覆鏌撳櫒
聽聽聽聽聽聽聽聽for(VectorGUIRenderQuad::const_iterator聽iter聽=聽m_vtGUIRenderQuad.begin()聽;聽iter聽!=聽m_vtGUIRenderQuad.end()聽;聽iter聽++)
聽聽聽聽聽聽聽聽
{
聽聽聽聽聽聽聽聽聽聽聽聽Systems::GetSingleton().GetGUIRendererSystem()
->AddCache(*iter);
聽聽聽聽聽聽聽聽}

聽聽聽聽}

聽聽聽聽
//聽娓呯┖cache闃熷垪
聽聽聽聽void聽ClearCacheList(void)
聽聽聽聽
{
聽聽聽聽聽聽聽聽m_vtGUIRenderQuad.clear();
聽聽聽聽}

protected:

聽聽聽聽
//聽Cache闇瑕佹覆鏌撶殑欏圭洰
聽聽聽聽virtualvoid聽DoCache(){};

聽聽聽聽VectorGUIRenderQuad聽m_vtGUIRenderQuad;聽聽聽聽
//聽娓叉煋闃熷垪
聽聽聽聽bool聽m_bDirty;聽//聽闇瑕侀噸鏂癈ache闇瑕佹覆鏌撶殑欏圭洰
}
;



姣忎釜Window錛堜竴涓猈indow鏄竴涓娊璞$被錛孲tatic/Button/Dialog絳夌瓑鎵鏈夌獥鍙i兘鏄戶鎵夸簬Window錛夐兘緇ф壙浜嶨UIRenderCache瀵硅薄錛屽綋紿楀彛鐨勬煇涓睘鎬э紙濡俉indowText錛夋敼鍙樻椂錛屽氨浼氭妸m_bDirty鏍囪璁劇疆鎴恡rue銆傛瘡甯ф覆鏌撶殑鏃跺欒皟鐢≧enderCache銆傞偅涔堝鏋滅獥鍙g殑灞炴ф病鏈夋敼鍙橈紝灝卞彧闇瑕佹妸m_vtGUIRenderQuad鐨勪笢瑗挎覆鏌撳嚭鏉ワ紱濡傛灉灞炴ф敼鍙樹簡錛堝嵆m_bDirty涓簍rue錛夛紝鍒欒皟鐢―oCache錛岀敱緇ф壙綾伙紙濡係tatic/Button絳夛級鏀瑰啓榪欎釜鍑芥暟錛岃綆楄創(chuàng)鍥懼潗鏍囥佷笁瑙掑艦鍧愭爣絳夌瓑涓滆タ閮芥斁鍦ㄨ繖涓嚱鏁伴噷銆傛葷殑鏉ヨ錛孋ache涔嬪悗閫熷害浼氭瘮Cache涔嬪墠蹇搗鐮佷竴鍗婁互涓娿?br />
濂戒簡錛岀潯瑙夊幓浜嗐?img src ="http://m.shnenglu.com/mybios/aggbug/16630.html" width = "1" height = "1" />

]]>
欏剁偣澹版槑http://m.shnenglu.com/mybios/archive/2006/12/02/15891.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Sat, 02 Dec 2006 08:42:00 GMThttp://m.shnenglu.com/mybios/archive/2006/12/02/15891.htmlhttp://m.shnenglu.com/mybios/comments/15891.htmlhttp://m.shnenglu.com/mybios/archive/2006/12/02/15891.html#Feedback0http://m.shnenglu.com/mybios/comments/commentRss/15891.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/15891.html闃呰鍏ㄦ枃

]]>
VS2003涓嬬紪璇慦indows璁$畻鍣?/title><link>http://m.shnenglu.com/mybios/archive/2006/12/02/15889.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Sat, 02 Dec 2006 08:10:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2006/12/02/15889.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/15889.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2006/12/02/15889.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/15889.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/15889.html</trackback:ping><description><![CDATA[宸ョ▼宸茬粡鏀句笂錛?a href="http://m.shnenglu.com/Files/mybios/calc.rar">涓嬭澆鍥炲幓緙栬瘧灝辮</a>錛屾斁涓創(chuàng)鍥撅細<br /><br /><img height="309" alt="Calc.JPG" src="http://m.shnenglu.com/images/cppblog_com/mybios/ArticlePics/Calc.JPG" width="480" border="0" /><img src ="http://m.shnenglu.com/mybios/aggbug/15889.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2006-12-02 16:10 <a href="http://m.shnenglu.com/mybios/archive/2006/12/02/15889.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浠婂ぉ閬囧埌浜嗛儊闂風殑C鍑芥暟錛屽垢濂介亣鍒伴珮鎵嬪府蹇欒В鍐充簡http://m.shnenglu.com/mybios/archive/2006/11/30/15817.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Thu, 30 Nov 2006 08:30:00 GMThttp://m.shnenglu.com/mybios/archive/2006/11/30/15817.htmlhttp://m.shnenglu.com/mybios/comments/15817.htmlhttp://m.shnenglu.com/mybios/archive/2006/11/30/15817.html#Feedback0http://m.shnenglu.com/mybios/comments/commentRss/15817.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/15817.html
char sChar[MAX_PATH];
const WCHAR wChar[] = L"鎴戠殑鏈嬪弸";
// 鎶妛Char榪欎釜Unicode瀛楃涓茶漿鎹㈡垚ANSI瀛楃涓詫紝淇濆瓨鍒皊Char錛屽茍涓旇繑鍥濧NSI鐨勫瓧絎︿覆澶у皬錛屽鏋滃け璐ワ紝鍒欒繑鍥?1
聽 wcstombs(sChar, wChar, MAX_PATH);

榪欐牱鏄繍琛屼笉榪囦笉鍘葷殑錛屾繪槸榪斿洖-1銆?br />
鍚庢潵緇忎漢鎻愰啋錛岄渶瑕佸湪璋冪敤wcstombs涔嬪墠瑕佸厛璁劇疆浠g爜欏碉細

char sChar[MAX_PATH];
const WCHAR wChar[] = L"鎴戠殑鏈嬪弸";

// 璁劇疆浠g爜欏典負榛樿浠g爜欏?br />聽 _tsetlocale(LC_ALL,_T(""));
// 鎶妛Char榪欎釜Unicode瀛楃涓茶漿鎹㈡垚ANSI瀛楃涓詫紝淇濆瓨鍒皊Char錛屽茍涓旇繑鍥濧NSI鐨勫瓧絎︿覆澶у皬錛屽鏋滃け璐ワ紝鍒欒繑鍥?1
聽 wcstombs(sChar, wChar, MAX_PATH);


榪欐牱灝卞彲浠ヤ簡錛佷笉鐢ㄨ皟鐢ㄧ儲浜虹殑WideCharToMultiByte錛佸濂藉晩錛?br />鐩稿弽鐨勫嚱鏁幫細mbstowcs錛屽彲浠ヤ粠ANSI杞崲鍒癠nicode

]]>
銆愯漿璐淬慏XUT緙栫▼鎸囧崡(鍥?:閫氳繃DXUT浣跨敤璁懼http://m.shnenglu.com/mybios/archive/2006/11/22/15531.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Wed, 22 Nov 2006 03:35:00 GMThttp://m.shnenglu.com/mybios/archive/2006/11/22/15531.htmlhttp://m.shnenglu.com/mybios/comments/15531.htmlhttp://m.shnenglu.com/mybios/archive/2006/11/22/15531.html#Feedback1http://m.shnenglu.com/mybios/comments/commentRss/15531.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/15531.html 閫氳繃DXUT浣跨敤璁懼
DirectX璁懼鐨勫垱寤哄湪DXUT涓緱鍒頒簡鏀硅繘銆備綘鍙互璁╀綘鐨勫簲鐢ㄧ▼搴忕洿鎺ュ垱寤鴻澶囪屽叾瀹冩湁妗嗘灦鎻愪緵鐨勭壒寰佷粛鐒跺彲鐢ㄣ?br />鍒涘緩璁懼
閫夋嫨鏈浣崇殑璁懼璁劇疆
淇敼鍙敤鐨勮澶囪緗?br />闄嶄負杞歡欏剁偣澶勭悊
浣跨敤浣犺嚜宸辯殑璁懼

鍒涘緩璁懼
鍏稿瀷鍦幫紝浣犲皢閫氳繃鏍囧噯鐨凞irect3D鏂規(guī)硶鍒涘緩璁懼
HRESULT CreateDevice(
聽聽聽 UINT聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Adapter,
聽聽聽 D3DDEVTYPE聽聽聽聽聽聽聽聽聽聽聽 DeviceType,
聽聽聽 HWND聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 hFocusWindow,
聽聽聽 DWORD聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 BehaviorFlags,
聽聽聽 D3DPRESENT_PARAMETERS *pPresentationParameters,
聽聽聽 IDirect3DDevice9聽聽聽聽聽 **ppReturnedDeviceInterface
);
榪欎釜鏂規(guī)硶闇瑕佹湁鏁堢殑閫傞厤鍣紝璁懼綾誨瀷(HAL or REF),紿楀彛鍙ユ焺錛岃涓烘爣蹇?software/hardware vertex processing 鍜屽叾瀹冮┍鍔ㄦ爣蹇?錛屼互鍙婂憟鐜板弬鏁?presentation parameters).姝ゅ錛孌3DPRESENT_PARAMETER緇撴瀯浣撹繕鎷ユ湁澶ч噺鐨勬垚鍛樻寚瀹氬悗澶囩紦鍐插尯錛屽閲嶉噰鏍瘋瀹氾紝浜ゆ崲鏁堟灉錛岀獥鍙fā寮忥紝娣卞害妯$増緙撳啿錛屽埛鏂扮巼錛屽憟鐜伴棿闅旓紝浠ュ強鍛堢幇鏍囧織銆?br />涓烘墍鏈夎繖浜涘弬鏁伴夋嫨鏈夋晥鐨勮瀹氭槸鍏鋒湁鎸戞垬鎬х殑銆傛鏋墮氳繃DXUTCreateDevice鍑芥暟綆鍖栦簡榪欎竴閫夋嫨榪囩▼銆?br />HRESULT DXUTCreateDevice(
聽聽聽 UINT AdapterOrdinal聽 = D3DADAPTER_DEFAULT,
聽聽聽 BOOL bWindowed聽聽聽聽聽聽 = TRUE,
聽聽聽 INT nSuggestedWidth聽 = 640,
聽聽聽 INT nSuggestedHeight = 480,
聽聽聽 LPDXUTCALLBACKISDEVICEACCEPTABLE pCallbackIsDeviceAcceptable聽聽聽聽 = NULL,
聽聽聽 LPDXUTCALLBACKMODIFYDEVICESETTINGS pCallbackModifyDeviceSettings = NULL
);
鏈鍩烘湰鐨勭敤娉曟槸鍏ㄩ儴浣跨敤緙虹渷鍙傛暟璋冪敤錛?br />DXUTCreateDevice();
閫氳繃榪欐牱鐨勮皟鐢ㄦ鏋朵嬌鐢ㄧ己鐪佽緗垱寤轟竴涓湪澶у鏁版儏鍐典笅鍙敤鐨勮澶囥傜己鐪佺殑璁劇疆濡備笅錛?br />

Direct3D Creation Flag Description Default Value from DXUTCreateDevice
AdapterFormat parameter of CheckDeviceFormat Adapter surface format. Desktop display mode, or D3DFMT_X8R8G8B8 if the desktop display mode is less than 32 bits.
Adapter parameter of IDirect3D9::CreateDevice Display adapter ordinal. D3DADAPTER_DEFAULT
D3DPRESENT_PARAMETERS. BackBufferCount Number of back buffers. 2, indicating triple buffering.
D3DPRESENT_PARAMETERS. BackBufferFormat Back buffer format. Desktop display mode, or D3DFMT_X8R8G8B8 if the desktop display mode is less than 32 bits.
D3DPRESENT_PARAMETERS. AutoDepthStencilFormat Depth format of the automatic depth-stencil surface that the device will create. D3DFMT_D16 if the backbuffer format is 16 bits or less, or D3DFMT_D32 otherwise.
The DeviceType parameter of IDirect3D9::CreateDevice Enumerated type of the device. D3DDEVTYPE_HAL if available, otherwise D3DDEVTYPE_REF or failure code if neither is available.
D3DPRESENT_PARAMETERS. MultiSampleQuality Quality level. MultiSampleQuality = 0, indicating multisampling is disabled.
D3DPRESENT_PARAMETERS. Flags Presentation parameters flags. D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL
D3DPRESENT_PARAMETERS. PresentationInterval Presentation interval. D3DPRESENT_INTERVAL_IMMEDIATE for windowed mode, or D3DPRESENT_INTERVAL_DEFAULT for full-screen mode.
D3DPRESENT_PARAMETERS. FullScreen_RefreshRateInHz Rate at which the display adapter refreshes the screen. 0, indicating windowed mode.
D3DPRESENT_PARAMETERS. BackBufferWidth and .BackBufferHeight Display mode resolution. 640 x 480 pixels for windowed mode, or the desktop resolution for full-screen mode.
D3DPRESENT_PARAMETERS. AutoDepthStencilFormat Stencil format of the automatic depth-stencil surface that the device will create. D3DFMT_D16 if the backbuffer format is 16 bits or less, or D3DFMT_D32 otherwise.
D3DPRESENT_PARAMETERS. SwapEffect Swap effect. D3DSWAPEFFECT_DISCARD
BehaviorFlags parameter of IDirect3D9::CreateDevice Vertex processing flags. D3DCREATE_HARDWARE_VERTEXPROCESSING if supported, otherwise D3DCREATE_SOFTWARE_VERTEXPROCESSING.
D3DPRESENT_PARAMETERS. Windowed Windowed or full-screen mode. true, indicating windowed mode.
hFocusWindow parameter of CreateDevice Handle to the created window (see Using Application Windows with DXUT). hWndFocus parameter of DXUTSetWindow
D3DPRESENT_PARAMETERS. hDeviceWindow Handle to the device window. hWndDeviceFullScreen or hWndDeviceWindowed parameters of DXUTSetWindow
D3DPRESENT_PARAMETERS. EnableAutoDepthStencil Depth-stencil buffer creation flag. true.

搴旂敤紼嬪簭鍙互閫氳繃鍙傛暟浼犻掔粰CreateDevice鏉ユ洿澶氱殑鎺у埗璁懼鐨勫垱寤猴紝榪欏皢姣斾嬌鐢ㄧ己鐪佺殑鏂瑰紡鏇村ソ銆備緥濡傦紝浣犲彲浠ラ氳繃nSuggestedWidth and nSuggestedHeight鍙傛暟鏀瑰彉紿楀彛鐨勫昂瀵搞?br />DXUTCreateDevice(
聽聽聽 D3DADAPTER_DEFAULT,
聽聽聽 false,
聽聽聽 1024,
聽聽聽 786,
聽聽聽 NULL,
聽聽聽 NULL,
聽聽聽 NULL
);
瑕佸緱鍒版洿澶氱殑鎺у埗鏉冿紝搴旂敤紼嬪簭鍙互浣跨敤榪欎袱涓彲閫夌殑鍥炶皟鍑芥暟錛孡PDXUTCALLBACKISDEVICEACCEPTABLE and LPDXUTCALLBACKMODIFYDEVICESETTINGS.

閫夋嫨鏈浣崇殑璁懼璁劇疆
浣犲彲浠ヤ嬌鐢↖sDeviceAcceptable鍥炶皟鍑芥暟甯姪妗嗘灦涓轟綘鐨勫簲鐢ㄧ▼搴忛夋嫨鏈浣崇殑璁懼璁劇疆錛屽氨鍍忎笅闈㈢殑浠g爜錛?br />bool CALLBACK IsDeviceAcceptable(
D3DCAPS9*聽聽聽聽 pCaps,
D3DFORMAT聽聽聽聽 AdapterFormat,
D3DFORMAT聽聽聽聽 BackBufferFormat,
bool聽聽聽聽聽聽聽聽聽 bWindowed,
void*聽聽聽聽聽聽聽聽 pUserContext )
{
聽聽聽 // TODO: return true for acceptable settings and false otherwise.
聽聽聽 return true;
}
榪欎釜鍥炶皟鍑芥暟鐨勬ā鍨嬪熀浜嶭PDXUTCALLBACKISDEVICEACCEPTABLE鍘熷瀷(This callback function is modeled on the prototype LPDXUTCALLBACKISDEVICEACCEPTABLE)錛屾鏋朵負姣忎釜鍞竴鐨勪互涓?涓緗殑鏈夋晥緇勫悎璋冪敤榪欎釜鍑芥暟涓嬈★細
D3DDEVTYPE DeviceType;
UINT聽聽聽聽聽聽 AdapterOrdinal;
D3DFORMAT聽 AdapterFormat;
D3DFORMAT聽 BackBufferFormat;
bool聽聽聽聽聽聽 Windowed;
娉ㄦ剰閫傞厤鍣ㄥ簭鍙峰拰璁懼綾誨瀷娌℃湁鐩存帴鐨勪紶鍏ュ洖璋冨嚱鏁幫紝鑰屾槸鍒嗗埆浣滀負D3DCAPS9緇撴瀯浣撶殑鎴愬憳銆?br />閫氳繃榪欎釜鍥炶皟鍑芥暟錛屽簲鐢ㄧ▼搴忓彲浠ユ嫆緇濅換浣曞畠涓嶆敮鎸佺殑鎴栦笉鎯寵鐨勭粍鍚堛備緥濡傦紝搴旂敤紼嬪簭鍙互浣跨敤涓嬮潰鐨勪唬鐮佹嫆緇?6bits鐨勫悗澶囩紦鍐插尯鏍煎紡鍜屾墍鏈夎嚦灝戜笉鑳芥敮鎸佸儚绱犵潃鑹插櫒PS_2_0鐨勮澶囷細
bool CALLBACK IsDeviceAcceptable(
聽聽聽 D3DCAPS9*聽聽聽聽 pCaps,
聽聽聽 D3DFORMAT聽聽聽聽 AdapterFormat,
聽聽聽 D3DFORMAT聽聽聽聽 BackBufferFormat,
聽聽聽 bool聽聽聽聽聽聽聽聽聽 bWindowed )
{
聽聽聽 if( pCaps->PixelShaderVersion < D3DPS_VERSION(2,0) )
聽聽聽聽 return false;
聽聽聽 if( BackBufferFormat == D3DFMT_X1R5G5B5 || BackBufferFormat == D3DFMT_R5G6B5 )
聽聽聽聽聽聽聽 return false;
聽聽聽 return true;
}

涓烘瘡涓敮涓鐨勭粍鍚堣皟鐢ㄥ洖璋冨嚱鏁板悗錛屾鏋舵帓鍒楀墿涓嬬殑鍙敤緇勫悎錛屽茍閫夋嫨瀹冧滑褰撲腑鏈濂界殑銆傛帓鍚嶈緝楂樼殑濡備笅錛?br />D3DDEVTYPE_HAL錛岃幏鍙栫‖浠跺姞閫?br />濡傛灉搴旂敤紼嬪簭浠ュ叏灞忔ā寮忔樉紺猴紝妗嗘灦鏇磋秼鍚戜簬浣跨敤鍖歸厤妗岄潰鏍煎紡鐨勯傞厤鍣ㄦ牸寮忥紝榪欐牱鍙互鍦ㄥ叏灞忎笌紿楀彛涔嬮棿蹇熷垏鎹€備緥澶栫殑鏄紝濡傛灉妗岄潰鏄劇ず妯″紡灝忎簬32浣嶏紝妗嗘灦鏇磋秼鍚戜簬D3DFMT_X8R8G8B8.
鍖歸厤閫傞厤鍣ㄦ牸寮忕殑鍚庡緙撳啿鍖烘牸寮?br />鍦ㄩ夋嫨浜嗚繖浜涙帓鍚嶉珮鐨勭粍鍚堝悗錛岃鍒涘緩璁懼錛岃涓烘爣蹇楀拰鍛堢幇鍙傛暟浠嶇劧鏄渶瑕佺殑銆傚浜庤繖浜涜緗?Direct3D浣跨敤涓婇潰琛ㄤ腑鐨勭己鐪佸箋?/p>

浣跨敤浣犺嚜宸辯殑璁懼
浣犳病鏈夊繀瑕佷緷璧栦簬妗嗘灦鏉ュ垱寤篋irect3D璁懼銆傚簲鐢ㄧ▼搴忚嚜宸卞彲浠ュ垱寤鴻澶囧茍灝嗕粬浼犻掔粰妗嗘灦浣跨敤銆傚氨鍍忓簲鐢ㄧ▼搴忓彲浠ヨ鐩栨鏋剁殑window creation 璁劇疆銆傜畝鍗曠殑浣跨敤浣犳兂瑕佺殑璁劇疆鍒涘緩涓涓澶囷紝鐒跺悗璋冪敤 DXUTSetDevice鍑芥暟璁╂鏋跺湪浣犵殑璁懼涓婃覆鏌撱?br />娉ㄦ剰錛氬鏋滃簲鐢ㄧ▼搴忓垱寤轟簡涓嶄緷璧栦簬妗嗘灦鐨勮澶囷紝閭d箞搴旂敤紼嬪簭涔熷繀欏誨湪涓誨驚鐜墽琛屽畬浠ュ悗浜茶嚜鐨勯氳繃cleanup 閲婃斁璁懼鎺ュ彛銆?br />鍙﹁鍙傞槄
閫氳繃DXUT浣滄洿楂樼駭鐨勮澶囬夋嫨



]]>
銆愯漿璐淬慍璇█楂樻晥緙栫▼鐨勫嚑鎷?/title><link>http://m.shnenglu.com/mybios/archive/2006/11/21/15514.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Tue, 21 Nov 2006 09:26:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2006/11/21/15514.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/15514.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2006/11/21/15514.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/15514.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/15514.html</trackback:ping><description><![CDATA[寮曡█錛?br />銆銆緙栧啓楂樻晥綆媧佺殑C璇█浠g爜錛屾槸璁稿杞歡宸ョ▼甯堣拷姹傜殑鐩爣銆傛湰鏂囧氨宸ヤ綔涓殑涓浜涗綋浼氬拰緇忛獙鍋氱浉鍏崇殑闃愯堪錛屼笉瀵圭殑鍦版柟璇峰悇浣嶆寚鏁欍?br /><br />絎?鎷涳細浠ョ┖闂存崲鏃墮棿<br /><br />銆銆璁$畻鏈虹▼搴忎腑鏈澶х殑鐭涚浘鏄┖闂村拰鏃墮棿鐨勭煕鐩撅紝閭d箞錛屼粠榪欎釜瑙掑害鍑哄彂閫嗗悜鎬濈淮鏉ヨ冭檻紼嬪簭鐨勬晥鐜囬棶棰橈紝鎴戜滑灝辨湁浜嗚В鍐抽棶棰樼殑絎?鎷涒斺斾互絀洪棿鎹㈡椂闂淬?br />渚嬪錛氬瓧絎︿覆鐨勮祴鍊箋?br />鏂規(guī)硶A錛岄氬父鐨勫姙娉曪細<br />#define LEN 32<br />char string1 [LEN];<br />memset (string1,0,LEN);<br />strcpy (string1,鈥淭his is a example!!鈥濓級;<br />鏂規(guī)硶B錛?br />const char string2[LEN] =鈥淭his is a example!鈥?<br />char * cp;<br />cp = string2 ;<br />(浣跨敤鐨勬椂鍊欏彲浠ョ洿鎺ョ敤鎸囬拡鏉ユ搷浣溿?<br /><br />銆銆浠庝笂闈㈢殑渚嬪瓙鍙互鐪嬪嚭錛孉鍜孊鐨勬晥鐜囨槸涓嶈兘姣旂殑銆傚湪鍚屾牱鐨勫瓨鍌ㄧ┖闂翠笅錛孊鐩存帴浣跨敤鎸囬拡灝卞彲浠ユ搷浣滀簡錛岃孉闇瑕佽皟鐢ㄤ袱涓瓧絎﹀嚱鏁版墠鑳藉畬鎴愩侭鐨勭己鐐瑰湪浜庣伒媧繪ф病鏈堿濂姐傚湪闇瑕侀綣佹洿鏀逛竴涓瓧絎︿覆鍐呭鐨勬椂鍊欙紝A鍏鋒湁鏇村ソ鐨勭伒媧繪э紱濡傛灉閲囩敤鏂規(guī)硶B錛屽垯闇瑕侀瀛樿澶氬瓧絎︿覆錛岃櫧鐒跺崰鐢ㄤ簡澶ч噺鐨勫唴瀛橈紝浣嗘槸鑾峰緱浜嗙▼搴忔墽琛岀殑楂樻晥鐜囥?br /><br />銆銆濡傛灉緋葷粺鐨勫疄鏃舵ц姹傚緢楂橈紝鍐呭瓨榪樻湁涓浜涳紝閭f垜鎺ㄨ崘浣犱嬌鐢ㄨ鎷涙暟銆?br /><br />銆銆璇ユ嫑鏁扮殑鍙樻嫑鈥斺斾嬌鐢ㄥ畯鍑芥暟鑰屼笉鏄嚱鏁般備婦渚嬪涓嬶細<br />鏂規(guī)硶C錛?br />#define bwMCDR2_ADDRESS 4<br />#define bsMCDR2_ADDRESS 17<br />int BIT_MASK(int __bf)<br />{<br />return ((1U << (bw ## __bf)) - 1) << (bs ## __bf);<br />}<br />void SET_BITS(int __dst, int __bf, int __val)<br />{<br />__dst = ((__dst) & ~(BIT_MASK(__bf))) | \<br />(((__val) << (bs ## __bf)) & (BIT_MASK(__bf))))<br />}<br /><br />SET_BITS(MCDR2, MCDR2_ADDRESS, RegisterNumber);<br />鏂規(guī)硶D錛?br />#define bwMCDR2_ADDRESS 4<br />#define bsMCDR2_ADDRESS 17<br />#define bmMCDR2_ADDRESS BIT_MASK(MCDR2_ADDRESS)<br />#define BIT_MASK(__bf) (((1U << (bw ## __bf)) - 1) << (bs ## __bf))<br />#define SET_BITS(__dst, __bf, __val) \<br />((__dst) = ((__dst) & ~(BIT_MASK(__bf))) | \<br />(((__val) << (bs ## __bf)) & (BIT_MASK(__bf))))<br /><br />SET_BITS(MCDR2, MCDR2_ADDRESS, RegisterNumber);<br /><br />銆銆鍑芥暟鍜屽畯鍑芥暟鐨勫尯鍒氨鍦ㄤ簬錛屽畯鍑芥暟鍗犵敤浜嗗ぇ閲忕殑絀洪棿錛岃屽嚱鏁板崰鐢ㄤ簡鏃墮棿銆傚ぇ瀹惰鐭ラ亾鐨勬槸錛屽嚱鏁拌皟鐢ㄦ槸瑕佷嬌鐢ㄧ郴緇熺殑鏍堟潵淇濆瓨鏁版嵁鐨勶紝濡傛灉緙栬瘧鍣ㄩ噷鏈夋爤媯鏌ラ夐」錛屼竴鑸湪鍑芥暟鐨勫ご浼氬祵鍏ヤ竴浜涙眹緙栬鍙ュ褰撳墠鏍堣繘琛屾鏌ワ紱鍚屾椂錛孋PU涔熻鍦ㄥ嚱鏁拌皟鐢ㄦ椂淇濆瓨鍜屾仮澶嶅綋鍓嶇殑鐜板満錛岃繘琛屽帇鏍堝拰寮規(guī)爤鎿嶄綔錛屾墍浠ワ紝鍑芥暟璋冪敤闇瑕佷竴浜汣PU鏃墮棿銆傝屽畯鍑芥暟涓嶅瓨鍦ㄨ繖涓棶棰樸傚畯鍑芥暟浠呬粎浣滀負棰勫厛鍐欏ソ鐨勪唬鐮佸祵鍏ュ埌褰撳墠紼嬪簭錛屼笉浼氫駭鐢熷嚱鏁拌皟鐢紝鎵浠ヤ粎浠呮槸鍗犵敤浜嗙┖闂達紝鍦ㄩ綣佽皟鐢ㄥ悓涓涓畯鍑芥暟鐨勬椂鍊欙紝璇ョ幇璞″挨鍏剁獊鍑恒?br /><br />銆銆D鏂規(guī)硶鏄垜鐪嬪埌鐨勬渶濂界殑緗綅鎿嶄綔鍑芥暟錛屾槸ARM鍏徃婧愮爜鐨勪竴閮ㄥ垎錛屽湪鐭煭鐨勪笁琛屽唴瀹炵幇浜嗗緢澶氬姛鑳斤紝鍑犱箮娑電洊浜嗘墍鏈夌殑浣嶆搷浣滃姛鑳姐侰鏂規(guī)硶鏄叾鍙樹綋錛屽叾涓粙鍛寵繕闇澶у浠旂粏浣撲細銆?br /><br />絎?鎷涳細鏁板鏂規(guī)硶瑙e喅闂<br /><br />銆銆鐜板湪鎴戜滑婕旂粠楂樻晥C璇█緙栧啓鐨勭浜屾嫑鈥斺旈噰鐢ㄦ暟瀛︽柟娉曟潵瑙e喅闂銆?br /><br />銆銆鏁板鏄綆楁満涔嬫瘝錛屾病鏈夋暟瀛︾殑渚濇嵁鍜屽熀紜錛屽氨娌℃湁璁$畻鏈虹殑鍙戝睍錛屾墍浠ュ湪緙栧啓紼嬪簭鐨勬椂鍊欙紝閲囩敤涓浜涙暟瀛︽柟娉曚細瀵圭▼搴忕殑鎵ц鏁堢巼鏈夋暟閲忕駭鐨勬彁楂樸?br />涓句緥濡備笅錛屾眰 1~100鐨勫拰銆?br />鏂規(guī)硶E<br />int I , j;<br />for (I = 1 ;I<=100; I ++錛墈<br />j += I;<br />}<br />鏂規(guī)硶F<br />int I;<br />I = (100 * (1+100)) / 2<br /><br />銆銆榪欎釜渚嬪瓙鏄垜鍗拌薄鏈娣辯殑涓涓暟瀛︾敤渚嬶紝鏄垜鐨勮綆楁満鍚挋鑰佸笀鑰冩垜鐨勩傚綋鏃舵垜鍙湁灝忓涓夊勾綰э紝鍙儨鎴戝綋鏃朵笉鐭ラ亾鐢ㄥ叕寮?N脳錛圢+1錛? 2 鏉ヨВ鍐寵繖涓棶棰樸傛柟娉旹寰幆浜?00嬈℃墠瑙e喅闂錛屼篃灝辨槸璇存渶灝戠敤浜?00涓祴鍊鹼紝100涓垽鏂紝200涓姞娉曪紙I鍜宩錛夛紱鑰屾柟娉旻浠呬粎鐢ㄤ簡1涓姞娉曪紝1 嬈′箻娉曪紝1嬈¢櫎娉曘傛晥鏋滆嚜鐒朵笉璦鑰屽柣銆傛墍浠ワ紝鐜板湪鎴戝湪緙栫▼搴忕殑鏃跺欙紝鏇村鐨勬槸鍔ㄨ剳絳嬫壘瑙勫緥錛屾渶澶ч檺搴﹀湴鍙戞尌鏁板鐨勫▉鍔涙潵鎻愰珮紼嬪簭榪愯鐨勬晥鐜囥?br /><br />絎?鎷涳細浣跨敤浣嶆搷浣?br /><br />銆銆瀹炵幇楂樻晥鐨凜璇█緙栧啓鐨勭涓夋嫑鈥斺斾嬌鐢ㄤ綅鎿嶄綔錛屽噺灝戦櫎娉曞拰鍙栨ā鐨勮繍綆椼?br /><br />銆銆鍦ㄨ綆楁満紼嬪簭涓紝鏁版嵁鐨勪綅鏄彲浠ユ搷浣滅殑鏈灝忔暟鎹崟浣嶏紝鐞嗚涓婂彲浠ョ敤鈥滀綅榪愮畻鈥濇潵瀹屾垚鎵鏈夌殑榪愮畻鍜屾搷浣溿備竴鑸殑浣嶆搷浣滄槸鐢ㄦ潵鎺у埗紜歡鐨勶紝鎴栬呭仛鏁版嵁鍙樻崲浣跨敤錛屼絾鏄紝鐏墊椿鐨勪綅鎿嶄綔鍙互鏈夋晥鍦版彁楂樼▼搴忚繍琛岀殑鏁堢巼銆備婦渚嬪涓嬶細<br />鏂規(guī)硶G<br />int I,J;<br />I = 257 /8;<br />J = 456 % 32;<br />鏂規(guī)硶H<br />int I,J;<br />I = 257 >>3;<br />J = 456 - (456 >> 4 << 4);<br /><br />銆銆鍦ㄥ瓧闈笂濂藉儚H姣擥楹葷儲浜嗗ソ澶氾紝浣嗘槸錛屼粩緇嗘煡鐪嬩駭鐢熺殑姹囩紪浠g爜灝變細鏄庣櫧錛屾柟娉旼璋冪敤浜嗗熀鏈殑鍙栨ā鍑芥暟鍜岄櫎娉曞嚱鏁幫紝鏃㈡湁鍑芥暟璋冪敤錛岃繕鏈夊緢澶氭眹緙栦唬鐮佸拰瀵勫瓨鍣ㄥ弬涓庤繍綆楋紱鑰屾柟娉旽鍒欎粎浠呮槸鍑犲彞鐩稿叧鐨勬眹緙栵紝浠g爜鏇寸畝媧侊紝鏁堢巼鏇撮珮銆傚綋鐒訛紝鐢變簬緙栬瘧鍣ㄧ殑涓嶅悓錛屽彲鑳芥晥鐜囩殑宸窛涓嶅ぇ錛屼絾鏄紝浠ユ垜鐩墠閬囧埌鐨凪S C ,ARM C 鏉ョ湅錛屾晥鐜囩殑宸窛榪樻槸涓嶅皬銆傜浉鍏蟲眹緙栦唬鐮佸氨涓嶅湪榪欓噷鍒椾婦浜嗐?br />榪愮敤榪欐嫑闇瑕佹敞鎰忕殑鏄紝鍥犱負CPU鐨勪笉鍚岃屼駭鐢熺殑闂銆傛瘮濡傝錛屽湪PC涓婄敤榪欐嫑緙栧啓鐨勭▼搴忥紝騫跺湪PC涓婅皟璇曢氳繃錛屽湪縐繪鍒頒竴涓?6浣嶆満騫沖彴涓婄殑鏃跺欙紝鍙兘浼氫駭鐢熶唬鐮侀殣鎮(zhèn)c傛墍浠ュ彧鏈夊湪涓瀹氭妧鏈繘闃剁殑鍩虹涓嬫墠鍙互浣跨敤榪欐嫑銆?br /><br />絎?鎷涳細姹囩紪宓屽叆<br /><br />銆銆楂樻晥C璇█緙栫▼鐨勫繀鏉鎶錛岀鍥涙嫑鈥斺斿祵鍏ユ眹緙栥?br /><br />銆銆鈥滃湪鐔熸?zhèn)夋眹缂栬瑷鐨勪漢鐪奸噷錛孋璇█緙栧啓鐨勭▼搴忛兘鏄瀮鍦鋸濄傝繖縐嶈娉曡櫧鐒跺亸嬋浜嗕竴浜涳紝浣嗘槸鍗存湁瀹冪殑閬撶悊銆傛眹緙栬璦鏄晥鐜囨渶楂樼殑璁$畻鏈鴻璦錛屼絾鏄紝涓嶅彲鑳介潬鐫瀹冩潵鍐欎竴涓搷浣滅郴緇熷惂?鎵浠ワ紝涓轟簡鑾峰緱紼嬪簭鐨勯珮鏁堢巼錛屾垜浠彧濂介噰鐢ㄥ彉閫氱殑鏂規(guī)硶 鈥斺斿祵鍏ユ眹緙栵紝娣峰悎緙栫▼銆?br /><br />銆銆涓句緥濡備笅錛屽皢鏁扮粍涓璧嬪肩粰鏁扮粍浜?瑕佹眰姣忎竴瀛楄妭閮界浉絎︺?br />char string1[1024],string2[1024];<br />鏂規(guī)硶I<br />int I;<br />for (I =0 ;I<1024;I++)<br />*(string2 + I) = *(string1 + I)<br />鏂規(guī)硶J<br />#ifdef _PC_<br />int I;<br />for (I =0 ;I<1024;I++)<br />*(string2 + I) = *(string1 + I);<br />#else<br />#ifdef _ARM_<br />__asm<br />{<br />MOV R0,string1<br />MOV R1,string2<br />MOV R2,#0<br />loop:<br />LDMIA R0!, [R3-R11]<br />STMIA R1!, [R3-R11]<br />ADD R2,R2,#8<br />CMP R2, #400<br />BNE loop<br />}<br />#endif<br /><br />銆銆鏂規(guī)硶I鏄渶甯歌鐨勬柟娉曪紝浣跨敤浜?024嬈″驚鐜紱鏂規(guī)硶J鍒欐牴鎹鉤鍙頒笉鍚屽仛浜嗗尯鍒嗭紝鍦ˋRM騫沖彴涓嬶紝鐢ㄥ祵鍏ユ眹緙栦粎鐢?28嬈″驚鐜氨瀹屾垚浜嗗悓鏍風殑鎿嶄綔銆傝繖閲屾湁鏈嬪弸浼氳錛屼負浠涔堜笉鐢ㄦ爣鍑嗙殑鍐呭瓨鎷瘋礉鍑芥暟鍛?榪欐槸鍥犱負鍦ㄦ簮鏁版嵁閲屽彲鑳藉惈鏈夋暟鎹負0鐨勫瓧鑺傦紝榪欐牱鐨勮瘽錛屾爣鍑嗗簱鍑芥暟浼氭彁鍓嶇粨鏉熻屼笉浼氬畬鎴愭垜浠姹傜殑鎿嶄綔銆傝繖涓緥紼嬪吀鍨嬪簲鐢ㄤ簬LCD鏁版嵁鐨勬嫹璐濊繃紼嬨傛牴鎹笉鍚岀殑CPU錛岀啛緇冧嬌鐢ㄧ浉搴旂殑宓屽叆姹囩紪錛屽彲浠ュぇ澶ф彁楂樼▼搴忔墽琛岀殑鏁堢巼銆?br /><br />銆銆铏界劧鏄繀鏉鎶錛屼絾鏄鏋滆交鏄撲嬌鐢ㄤ細浠樺嚭鎯ㄩ噸鐨勪唬浠楓傝繖鏄洜涓猴紝浣跨敤浜嗗祵鍏ユ眹緙栵紝渚塊檺鍒朵簡紼嬪簭鐨勫彲縐繪鎬э紝浣跨▼搴忓湪涓嶅悓騫沖彴縐繪鐨勮繃紼嬩腑錛屽崸铏庤棌榫欙紝闄╄薄鐜敓錛佸悓鏃惰鎷涙暟涔熶笌鐜頒唬杞歡宸ョ▼鐨勬濇兂鐩歌繚鑳岋紝鍙湁鍦ㄨ揩涓嶅緱宸茬殑鎯呭喌涓嬫墠鍙互閲囩敤銆傚垏璁幫紝鍒囪銆?<br /><br /><img src ="http://m.shnenglu.com/mybios/aggbug/15514.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2006-11-21 17:26 <a href="http://m.shnenglu.com/mybios/archive/2006/11/21/15514.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆愯漿璐淬戠洿鎺ヨ澆鍏ュ唴瀛樹腑鐨凞LLhttp://m.shnenglu.com/mybios/archive/2006/11/21/15483.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Mon, 20 Nov 2006 16:45:00 GMThttp://m.shnenglu.com/mybios/archive/2006/11/21/15483.htmlhttp://m.shnenglu.com/mybios/comments/15483.htmlhttp://m.shnenglu.com/mybios/archive/2006/11/21/15483.html#Feedback6http://m.shnenglu.com/mybios/comments/commentRss/15483.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/15483.html浠繪槑姹?/a>

涓嬭澆婧愪唬鐮?/a>

鍓嶈█

銆銆浣犲彲鑳戒笉甯屾湜鍦ㄥ彂甯冪▼搴忔椂闄勫甫涓婁竴涓閮ㄧ殑 DLL錛屽洜涓哄彲鑳戒細鏈変簺鐢ㄦ埛鍦ㄦ棤鎰忎腑鎶?DLL 鍒犻櫎浜嗚岄犳垚 EXE 涓嶈兘姝g‘榪愯錛屼篃鏈夊彲鑳借 DLL 浼氳鍒漢鎷垮幓浣跨敤錛屼篃鏈夊彲鑳斤紝姝?DLL 浼氭垚涓虹牬瑙h呯牬瑙d綘鐨勭▼搴忕殑紿佺牬鍙c傛棤璁哄嚭浜庝綍縐嶅師鍥狅紝濡傛灉浣犳兂鎶婁竴涓?DLL 鍚堝茍鍒頒竴涓?EXE 涓殑璇濓紝鏈枃鍚戜綘浠嬬粛榪欑鏂規(guī)硶銆?


Win32 紼嬪簭璋冪敤 DLL 鐨勬満鍒?/strong>

銆銆 Win32 EXE 鍦ㄨ皟鐢ㄤ竴涓閮?DLL 涓殑鍑芥暟鏃訛紝棣栧厛瑕佽皟鐢?LoadLibary 鍑芥暟鏉ヨ澆鍏ユ DLL 鍒扮▼搴忕殑榪涚▼鍦板潃絀洪棿銆?濡傛灉 LoadLibary 杞藉叆姝?DLL 鎴愬姛錛屽皢榪斿洖涓涓 DLL 鐨勫彞鏌勩?榪欎釜鍙ユ焺瀹為檯涓婂氨鏄 DLL 鍦ㄥ唴瀛樹腑鐨勮搗濮嬪湴鍧銆?鍦ㄨ澆鍏?DLL 鎴愬姛鍚庯紝榪樺繀欏昏皟鐢?GetProcAddress 鍑芥暟鏉ヨ幏鍙栬璋冪敤鐨勫嚱鏁扮殑鍦板潃銆傜劧鍚庡啀鏍規(guī)嵁璇ュ湴鍧鏉ヨ皟鐢ㄨ繖涓嚱鏁般?br />鏍規(guī)嵁涓婅堪鍘熺悊錛屾垜浠彲浠ユ妸涓涓?DLL 浣滀負璧勬簮鏂囦歡鏀懼埌 EXE 鏂囦歡涓紝鍦ㄧ▼搴忚繍琛屾椂錛屽垎閰嶄竴鍧楀唴瀛橈紝鐒跺悗灝嗘璧勬簮澶嶅埗鍒拌鍒嗛厤鐨勫唴瀛樹腑錛屽茍鏍規(guī)嵁璇ュ唴瀛樺湴鍧璁$畻寰楀埌鐩稿叧鐨勫鍑哄嚱鏁板湴鍧錛岀劧鍚庯紝褰撴垜浠渶瑕佽皟鐢ㄦ煇涓鍑芥暟鏃訛紝鍙互鐢ㄨ鍑芥暟鍦ㄥ唴瀛樹腑鐨勫湴鍧鏉ヨ皟鐢ㄥ畠銆?
紼嬪簭瀹炵幇銆?br />銆銆棣栧厛錛屾妸瑕佸悎騫剁殑 DLL 浣滀負璧勬簮鍔犲叆鍒伴」鐩殑璧勬簮鏂囦歡涓紝鐒跺悗鍦ㄧ▼搴忚繍琛屾椂錛屼粠璧勬簮涓澆鍏ヨ璧勬簮錛屼互寰楀埌璇?DLL 鍦ㄥ唴瀛樹腑鐨勪綅緗細
LPVOID sRawDll; // 璧勬簮鏂囦歡鍦ㄥ唴瀛樹腑鐨勫湴鍧 
HRSRC hRes; 
HMODULE hLibrary; 
HGLOBAL hResourceLoaded; 
char lib_name[MAX_PATH]; 
GetModuleFileName(hInstance, lib_name, MAX_PATH ); // 寰楀埌榪愯紼嬪簭鐨勫悕瀛?
hLibrary = LoadLibrary(lib_name);                  // 灝辮薄杞藉叆涓涓?DLL 涓鏍瘋澆鍏ヨ繍琛岀▼搴忓埌鍐呭瓨涓?

if (NULL != hLibrary) 
{
	// 寰楀埌鎸囧畾鐨勮祫婧愭枃浠跺湪鍐呭瓨涓殑浣嶇疆 
	hRes = FindResource(hLibrary, MAKEINTRESOURCE(IDR_DATA1), RT_RCDATA); 
	if (NULL != hRes) 
	{
		// 灝嗚祫婧愭枃浠惰澆鍏ュ唴瀛?
		hResourceLoaded = LoadResource(hLibrary, hRes); 
		if (NULL != hResourceLoaded) 
		{
			// 寰楀埌璧勬簮鏂囦歡澶у皬 
			SizeofResource(hLibrary, hRes); 

			// 閿佸畾璧勬簮浠ュ緱鍒板畠鍦ㄥ唴瀛樹腑鐨勫湴鍧 
			sRawDll = (LPVOID)LockResource(hResourceLoaded); 
		}
	}
	else return 1; 
	FreeLibrary(hLibrary);
}
else return 1; 
鐒跺悗錛屼粠璧勬簮涓澆鍏?DLL 鍒板唴瀛樺嚱鏁?LoadPbDllFromMemory 灝嗚澆鍏?DLL 鍒板唴瀛樹腑錛?璇ュ嚱鏁版湁涓や釜鍙傛暟錛岀涓涓弬鏁版槸鎸囧悜 DLL 璧勬簮鍦ㄥ唴瀛樹腑鐨勫湴鍧鐨勬寚閽堬紝涔熷氨鏄墠闈唬鐮佷腑鐨?LockResource 鍑芥暟鐨勮繑鍥炲箋傜浜屼釜鍙傛暟鏄竴涓┖鐨勬寚閽堬紝濡傛灉鍑芥暟 LoadPbDllFromMemory 榪愯鎴愬姛錛岃鎸囬拡灝嗘寚鍚戦噸鏂扮粍鍚堝悗鐨勫唴瀛樹腑鐨?DLL 鐨勮搗濮嬪湴鍧銆傝鍑芥暟榪樻湁涓涓姛鑳藉氨鏄鏋滆繍琛屾垚鍔燂紝瀹冨皢鎵嬪姩鍦扮敤 DLL_PROCESS_ATTACH 鍙傛暟璋冪敤 DLL 鐨勫叆鍙e嚱鏁?DllMain 鏉ュ垵濮嬪寲璇?DLL銆傞櫎姝や箣澶栵紝瀹冭繕浼氭墜鍔ㄥ湴杞藉叆鍚堝茍鐨?DLL 鐨勫叆鍙h〃涓鍏ョ殑 DLL 騫惰皟鏁村畠浠湪鍐呭瓨涓殑鐩稿鍦板潃銆備互涓嬫槸璇ュ嚱鏁頒唬鐮?
DWORD LoadPbDllFromMemory(LPVOID lpRawDll, LPVOID lpImageDll) 
{
	SYSTEM_INFO sSysInfo; 
	PIMAGE_DOS_HEADER dosHeader; 
	PIMAGE_NT_HEADERS pNTHeader; 
	PIMAGE_SECTION_HEADER section; 
	PIMAGE_IMPORT_DESCRIPTOR pImportDesc; 
	PIMAGE_IMPORT_BY_NAME pOrdinalName; 
	PIMAGE_BASE_RELOCATION baseReloc; 
	PDWORD lpLink; 
	unsigned char Protection[4096]; 
	HINSTANCE hDll; 
	WORD i; 
	DWORD ImagePages,fOldProtect,j,MaxLen,HdrLen,Addr1,Addr2,Pg,Pg1,Pg2; 
	char * sDllName; 

	if(NULL == lpRawDll) return 1 ; 

	dosHeader = (PIMAGE_DOS_HEADER)lpRawDll; 

	// Is this the MZ header? 
	if ((TRUE == IsBadReadPtr(dosHeader,sizeof (IMAGE_DOS_HEADER))) ||
				 (IMAGE_DOS_SIGNATURE != dosHeader->e_magic)) 
		return 2; 

	// Get the PE header. 
	pNTHeader = MakePtr(PIMAGE_NT_HEADERS,dosHeader,dosHeader->e_lfanew); 

	// Is this a real PE image? 
	if((TRUE == IsBadReadPtr(pNTHeader,sizeof ( IMAGE_NT_HEADERS))) || 
				( IMAGE_NT_SIGNATURE != pNTHeader->Signature)) 
		return 3 ; 

	if(( pNTHeader->FileHeader.SizeOfOptionalHeader != 
			sizeof(pNTHeader->OptionalHeader)) || 
		(pNTHeader->OptionalHeader.Magic != IMAGE_NT_OPTIONAL_HDR32_MAGIC)) 
		return 4; 

	if (pNTHeader->FileHeader.NumberOfSections < 1) return 5; 

	section = IMAGE_FIRST_SECTION( pNTHeader ); 
	int HeaderSize = sizeof(IMAGE_SECTION_HEADER); 

	// 鑺傚ご闀垮害 
	HdrLen = (DWORD)section - (DWORD)dosHeader + 
			HeaderSize * pNTHeader->FileHeader.NumberOfSections; 

	// 鎵懼嚭鏈澶х殑鑺傜殑闀垮害,姝よ妭涓鑸槸浠g爜鎵鍦ㄧ殑鑺?.text 鑺? 
	MaxLen = HdrLen; 
	int ii=0; 

	for (i = 0;i<(DWORD)pNTHeader->FileHeader.NumberOfSections;i++)// find MaxLen 
	{
		if(MaxLen < section[i].VirtualAddress + section[i].SizeOfRawData) 
		{
			MaxLen = section[i].VirtualAddress + section[i].SizeOfRawData; 
		}
		if(strcmp((const char *)section[i].Name,".rsrc") == 0) ii=i; 
	}

	GetSystemInfo(&sSysInfo);
	ImagePages = MaxLen / sSysInfo.dwPageSize; 
	if (MaxLen % sSysInfo.dwPageSize) ImagePages++; 

	// 鍒嗛厤鎵闇鐨勫唴瀛?
	DWORD NeededMemory = ImagePages * sSysInfo.dwPageSize; 
	lpImageDll = VirtualAlloc(NULL, NeededMemory, MEM_COMMIT, PAGE_EXECUTE_READWRITE); 

	if (lpImageDll == NULL) return 6; // 鍒嗛厤鍐呭瓨澶辮觸 

	MoveMemory( lpImageDll, lpRawDll, HdrLen ); // 澶嶅埗鑺傚ご 

	DWORD OrgAddr = 0; 
	DWORD NewAddr = 0; 
	DWORD Size = 0; 

	// 澶嶅埗 .text 鑺傛暟鎹?
	for (i = 0;i<pNTHeader->FileHeader.NumberOfSections;i++) 
	{
		OrgAddr = (DWORD)lpImageDll + (DWORD)section[i].VirtualAddress; 
		NewAddr = (DWORD)lpRawDll + (DWORD)section[i].PointerToRawData; 
		Size = (DWORD)section[i].SizeOfRawData; 
		MoveMemory((void *)OrgAddr, (void *)NewAddr, Size ); 
	}

	// 鎶婃寚閽堟寚鍚戞柊鐨?DLL 鏄犲儚 
	dosHeader = (PIMAGE_DOS_HEADER) lpImageDll; // Switch to new image 
	pNTHeader = (PIMAGE_NT_HEADERS) ((DWORD)dosHeader + dosHeader->e_lfanew); 
	section = (PIMAGE_SECTION_HEADER) ((DWORD)pNTHeader + sizeof(IMAGE_NT_HEADERS)); 
	pImageBase = (PBYTE)dosHeader; 

	if((ii!=0) && (IsNT()==TRUE)) 
	{
		section[ii].VirtualAddress = section[ii].VirtualAddress + (DWORD)lpRawDll; 
		section[ii].PointerToRawData = section[ii].PointerToRawData + (DWORD)lpRawDll; 
	}

	DWORD importsStartRVA; 

	// Look up where the imports section is (normally in the .idata section) 
	// but not necessarily so. Therefore, grab the RVA from the data dir. 
	importsStartRVA = GetImgDirEntryRVA(pNTHeader,IMAGE_DIRECTORY_ENTRY_IMPORT); 
	if ( !importsStartRVA ) 
	{
		VirtualFree(dosHeader,0, MEM_RELEASE); 
		return 7; 
	}

	pImportDesc = (PIMAGE_IMPORT_DESCRIPTOR) pNTHeader->
		OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress; 

	if(pImportDesc!= 0) 
		pImportDesc = (PIMAGE_IMPORT_DESCRIPTOR) ((DWORD)pImportDesc + (DWORD)dosHeader); 
	else 
	{
		VirtualFree(dosHeader,0, MEM_RELEASE); 
		return 8; 
	}

	while (1) // 澶勭悊鍚勫叆鍙h〃涓殑 DLL 
	{
		// 媯鏌ユ槸鍚﹂亣鍒頒簡絀虹殑 IMAGE_IMPORT_DESCRIPTOR 
		if ((pImportDesc->TimeDateStamp==0 ) && (pImportDesc->Name==0)) break; 

		// 浠庣鐩樿澆鍏ュ繀欏葷殑 Dll, 
		// 娉ㄦ剰,杞藉叆鐨?DLL 鏄悎騫剁殑 DLL 鐨勫叆鍙h〃涓殑 DLL, 
		// 涓嶆槸鍚堝茍鍒?EXE 涓殑 DLL 
		sDllName = (char *) (pImportDesc->Name + (DWORD)pImageBase); 
		hDll = GetModuleHandle(sDllName); 

		if (hDll == 0 ) hDll = LoadLibrary(sDllName); 

		if (hDll == 0 ) 
		{
			MessageBox(NULL, "Can''t find required Dll",
					"Error in LoadPbDllFromMemory()",0); 
			VirtualFree(dosHeader,0, MEM_RELEASE); 
			return 9; 
		}

		DWORD *lpFuncNameRef = (DWORD *) (pImportDesc->OriginalFirstThunk +
								 (DWORD)dosHeader); 
		DWORD *lpFuncAddr = (DWORD *) (pImportDesc->FirstThunk +
								 (DWORD)dosHeader); 

		while( *lpFuncNameRef != 0) 
		{
			pOrdinalName = (PIMAGE_IMPORT_BY_NAME) (*lpFuncNameRef +
						 (DWORD)dosHeader); 
			DWORD pIMAGE_ORDINAL_FLAG = 0x80000000; 

			if (*lpFuncNameRef & pIMAGE_ORDINAL_FLAG) 
				*lpFuncAddr = (DWORD) GetProcAddress(hDll,
					 (const char *)(*lpFuncNameRef & 0xFFFF)); 
			else
				*lpFuncAddr = (DWORD) GetProcAddress(hDll,
						 (const char *)pOrdinalName->Name); 

			if (lpFuncAddr == 0) 
			{
				VirtualFree(dosHeader,0, MEM_RELEASE); 
				return 10;// Can''t GetProcAddress 
			}

			lpFuncAddr++;
			lpFuncNameRef++;
		}
		pImportDesc++;
	}

	DWORD TpOffset; 
	baseReloc = (PIMAGE_BASE_RELOCATION)((DWORD)pNTHeader->
銆銆銆銆 OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress); 

	if (baseReloc !=0) 
	{
		baseReloc = (PIMAGE_BASE_RELOCATION) ((DWORD)baseReloc + (DWORD)dosHeader); 
		while(baseReloc->VirtualAddress != 0) 
		{
			PWORD lpTypeOffset = (PWORD) ((DWORD)baseReloc +
					 sizeof(IMAGE_BASE_RELOCATION)); 
			while (lpTypeOffset < (PWORD)((DWORD)baseReloc +
						 (DWORD)baseReloc->SizeOfBlock)) 
			{
				TpOffset = *lpTypeOffset & 0xF000; 
				if(TpOffset == 0x3000) 
				{
					lpLink = (PDWORD) ((DWORD)dosHeader +
銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆             baseReloc->VirtualAddress +
                                                      (*lpTypeOffset & 0xFFF)); 
					*lpLink = (DWORD)dosHeader + 
                                            (*lpLink) - pNTHeader->OptionalHeader.ImageBase; 
				}
				else
				{
					if (TpOffset != 0) 
					{
						VirtualFree(dosHeader,0, MEM_RELEASE); 
						return 10; 
					}
				}
				lpTypeOffset++;
			}
			baseReloc = (PIMAGE_BASE_RELOCATION)((DWORD)baseReloc + 
				(DWORD)baseReloc->SizeOfBlock); 
		}
	}

	// 鍙栧緱鍘熷鐨勫唴瀛樼姸鎬?
	memset(Protection,0,4096);
	for (i = 0;i<=pNTHeader->FileHeader.NumberOfSections;i++) 
	{
		if (i == pNTHeader->FileHeader.NumberOfSections) 
		{
			Addr1 = 0; 
			Addr2 = HdrLen; 
			j = 0x60000000; 
		}
		else
		{
			Addr1 = section[i].VirtualAddress; 
			Addr2 = section[i].SizeOfRawData; 
			j = section[i].Characteristics; 
		}
		Addr2 += Addr1 - 1; 

		Pg1 = Addr1 / sSysInfo.dwPageSize; 
		Pg2 = Addr2 / sSysInfo.dwPageSize; 
		for(Pg = Pg1 ;Pg<=Pg2;Pg++) 
		{
			if (j & 0x20000000) Protection[Pg] |= 1; // Execute 
			if (j & 0x40000000) Protection[Pg] |= 2; // Read 
			if (j & 0x80000000) Protection[Pg] |= 4; // Write 
		}
	}

	// 鎭㈠鍘熷鐨勫唴瀛樼姸鎬?
	Addr1 = (DWORD)dosHeader; 
	for (Pg = 0 ;Pg<= ImagePages;Pg++) 
	{
		switch(Protection[Pg])
		{
		case 2: 
			fOldProtect = PAGE_READONLY; 
			break;
		case 3: 
			fOldProtect = PAGE_EXECUTE_READ; 
			break;
		case 6: 
			fOldProtect = PAGE_READWRITE; 
			break;
		default: 
			// Ignore strange combinations
			fOldProtect = PAGE_EXECUTE_READWRITE;  
			break;
		}

		if (fOldProtect !=PAGE_EXECUTE_READWRITE) 
		{
			if (VirtualProtect((void *)Addr1, 
				sSysInfo.dwPageSize, 
				fOldProtect,
				&fOldProtect) == 0) 
			{
				VirtualFree(dosHeader,0, MEM_RELEASE); 
				return 11; 
			}
		}
		Addr1 += sSysInfo.dwPageSize; 
	}

	EntryPoint = (LPENTRYPOINT) ((DWORD)pNTHeader->OptionalHeader.AddressOfEntryPoint +
				 (DWORD)dosHeader); 
	LPVOID lpReserved = 0; 
	EntryPoint((HINSTANCE)dosHeader, DLL_PROCESS_ATTACH, lpReserved); 
	lpImageDll2=lpImageDll;
	return 0; 
}
銆銆涓浣?DLL 琚紜湴杞藉叆鍒板唴瀛樹腑錛屾垜浠氨鍙互閫氳繃鑷畾涔夊嚱鏁?GetProcAddressDirectly 鏉ヨ幏鍙栨煇鍑芥暟鍦ㄥ唴瀛樹腑鐨勫湴鍧錛屽茍鏍規(guī)嵁璇ュ湴鍧鏉ヨ皟鐢ㄨ鍑芥暟錛岃鍑芥暟涔熸湁涓や釜鍙傛暟錛岀涓涓弬鏁版槸鎸囧悜杞藉叆鍒板唴瀛樹腑鐨?DLL 鐨勮搗濮嬪湴鍧鐨勬寚閽堬紝絎簩涓槸瑕佽皟鐢ㄧ殑鍑芥暟鐨勫嚱鏁板悕銆備互涓嬫槸 GetProcAddressDirectly 鍑芥暟浠g爜:
DWORD GetProcAddressDirectly(PIMAGE_DOS_HEADER dosHeader, char * FuncName)  
{ 
	PIMAGE_NT_HEADERS pNTHeader;  
	PIMAGE_EXPORT_DIRECTORY pExportDir;  
	PWORD lpNameOrdinals;  
	LPDWORD lpFunctions;  
	DWORD * lpName;  
	char * lpExpFuncName;  
	DWORD i;  
	DWORD j;  
	char * lpFuncName;  

	if(dosHeader->e_magic != IMAGE_DOS_SIGNATURE) return 0;  

	pNTHeader = (PIMAGE_NT_HEADERS)((DWORD)dosHeader + dosHeader->e_lfanew);  

	if (pNTHeader->Signature != IMAGE_NT_SIGNATURE) return 0;  

	if ((pNTHeader->FileHeader.SizeOfOptionalHeader != sizeof(pNTHeader->OptionalHeader)) ||  
		(pNTHeader->OptionalHeader.Magic != IMAGE_NT_OPTIONAL_HDR32_MAGIC))  
		return 0;  

	DWORD exportsStartRVA, exportsEndRVA;  
	pImageBase = (PBYTE)dosHeader;  

	// Make pointers to 32 and 64 bit versions of the header.  
	pNTHeader = MakePtr( PIMAGE_NT_HEADERS, dosHeader,dosHeader->e_lfanew );  

	exportsStartRVA = GetImgDirEntryRVA(pNTHeader,IMAGE_DIRECTORY_ENTRY_EXPORT);  
	exportsEndRVA = exportsStartRVA +  
		GetImgDirEntrySize(pNTHeader, IMAGE_DIRECTORY_ENTRY_EXPORT);  

	// Get the IMAGE_SECTION_HEADER that contains the exports. This is  
	// usually the .edata section, but doesn''t have to be.  
	PIMAGE_SECTION_HEADER header;  
	header = GetEnclosingSectionHeader( exportsStartRVA, pNTHeader );  
	if ( !header ) return 0;  

	INT delta;  
	delta = (INT)(header->VirtualAddress - header->PointerToRawData);  
	pExportDir = (PIMAGE_EXPORT_DIRECTORY)GetPtrFromRVA(exportsStartRVA, 
				pNTHeader, pImageBase);  


	pExportDir =(PIMAGE_EXPORT_DIRECTORY) (pNTHeader->
	OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress);  

	if (pExportDir == 0)  
	{ 
		MessageBox(NULL,"Error in GetProcAddressDirectly()",0,0);  
		return 0;  
	} 

	pExportDir =(PIMAGE_EXPORT_DIRECTORY) ((DWORD)pExportDir + (DWORD)dosHeader);  
	lpNameOrdinals =(PWORD)((DWORD)pExportDir->AddressOfNameOrdinals + (DWORD)dosHeader);  
	lpName =(LPDWORD) (pExportDir->AddressOfNames + (DWORD)dosHeader);  
	lpFunctions =(LPDWORD) (pExportDir->AddressOfFunctions + (DWORD)dosHeader);  
	lpFuncName = FuncName;  

	if(HIWORD(lpFuncName)!=0 )  
	{ 
		for( i = 0;i<=pExportDir->NumberOfFunctions - 1;i++)  
		{ 
			DWORD entryPointRVA = *lpFunctions;  

			// Skip over gaps in exported function  
			if ( entryPointRVA == 0 ) continue; 
			for( j = 0;j<=pExportDir->NumberOfNames-1;j++)  
			{ 
				if( lpNameOrdinals[j] == i)  
				{ 
					lpExpFuncName = (char *) (lpName[j] + 
							(DWORD)dosHeader);  
					if(strcmp((char *)lpExpFuncName,(char *)FuncName)==0)  
						return (DWORD) (lpFunctions[i] + 
								(DWORD)dosHeader);  
				} 
			} 
		} 
	} 
	else 
	{ 
		for (i = 0 ;i<=pExportDir->NumberOfFunctions - 1;i++)  
		{ 
			if (lpFuncName == (char *)(pExportDir->Base + i))  
			{ 
				if (lpFunctions[i]) return (unsigned long) (lpFunctions[i] + 
							dosHeader);  
			} 
		} 
	} 
	return 0;  
}


鍦ㄨ皟鐢ㄥ畬鍑芥暟鍚庯紝涓嶈蹇樿鐢?UnloadPbDllFromMemory 鏉ヤ粠鍐呭瓨涓Щ鍘?DLL 浠ラ噴鏀懼垎閰嶇殑鍐呭瓨錛岃鍑芥暟榪樹細鐢?DLL_PROCESS_DETACH 鍙傛暟璋冪敤 DLL 鐨勫叆鍙e嚱鏁?DllMain 鏉ヤ粠璋冪敤榪涚▼鐨勫湴鍧絀洪棿鍗歌澆璇?DLL銆?浠ヤ笅鏄?UnloadPbDllFromMemory 鍑芥暟浠g爜:
DWORD UnloadPbDllFromMemory(PIMAGE_DOS_HEADER dosHeader) 
{
	PIMAGE_NT_HEADERS pNTHeader; 
	pNTHeader = (PIMAGE_NT_HEADERS)((DWORD)dosHeader + (DWORD)dosHeader->e_lfanew); 
	EntryPoint = (LPENTRYPOINT)(pNTHeader->OptionalHeader.AddressOfEntryPoint +
					 (DWORD)dosHeader); 
	EntryPoint((HINSTANCE)dosHeader, DLL_PROCESS_DETACH, 0); 
	return VirtualFree(dosHeader, 0, MEM_RELEASE); 
}


鍏充簬紺轟緥浠g爜鐨勮鏄?/strong>

銆銆鍦ㄦ湰鏂囬檮甯︾殑紺轟緥浠g爜涓紝鍚堝茍浜嗕竴涓悕涓?hardware.dll 鐨勫姩鎬佽繛鎺ュ簱錛岃鍔ㄦ佽繛鎺ュ簱鏄竴涓幏鍙栫郴緇熺‖浠朵俊鎭殑搴撴枃浠訛紝鍏朵腑鍖呮嫭浜嗕互涓嬪嚱鏁?

   getmac 		鍙栧緱緗戝崱 MAC 
   VolumeNumber 	鍙栧緱紜洏鍗鋒爣 
   changeres            鏀瑰彉灞忓箷鍒嗚京鐜?
   IsDiskInDrive        媯鏌ヨ蔣椹變腑鏄惁鎻掓湁鐩?nbsp;
   DPGetDefaultPrinter  鍙栧緱榛樿鐨勬墦鍗版満鍚?
   DPSetDefaultPrinter  璁劇疆榛樿鐨勬墦鍗版満 
   getserial            鍙栧緱紜洏鐨勫嚭鍘傚簭鍒楀彿 
   getmetric            鍙栧緱鏄劇ず鍒嗚京鐜?
   PrintStringDirect    鐩存帴鍚戞墦鍗版満鍙戦佷竴涓覆 
   vfpbeep              璁?PC 鍠囧彮鍙戝0 
   getcpuid             鍙栧緱 CPU ID 
   getbios              鍙栧緱涓繪澘 BIOS ID 
銆銆鍦ㄧず渚嬩唬鐮佷腑錛屽彧璋冪敤浜嗗叾涓竴涓嚱鏁?getbios 鏉ヨ幏鍙栦富鏉?BIOS ID錛?榪欓噷璇存槑涓涓嬶紝璇ュ嚱鏁板疄闄呬笂濂借薄鍙兘媯嫻?AWARD 涓繪澘鐨?BIOS錛?涔熷氨鏄瀹冩槸璇誨彇鐨勬槸緋葷粺鍐呭瓨 0x000fex71 澶勭殑鍊箋傚洜涓哄叾瀹冪墝瀛愮殑涓繪澘 BIOS 鐨勪綅緗◢鏈変笉鍚岋紝浣嗗湪紼嬪簭涓病鏈夎繘琛岃繖鏂歸潰鐨勫鐞嗭紝鎵浠ュ湪璇誨叾瀹冪墝瀛愮殑涓繪澘 BIOS 鏃跺彲鑳戒細鏈変簺闂(璇誨嚭鐨勫唴瀹瑰彲鑳戒笉姝g‘)銆傚叧浜庢 DLL 鐨勫唴瀹瑰拰瀹炵幇錛屼篃璁告垜浼氬湪鍙︿竴綃囨枃绔犱腑璁哄強銆?


灞闄?br />銆銆鍦ㄦ垜榪涜嫻嬭瘯鏃訛紝鍙戠幇瀵逛簬鏈変簺鍚湁璧勬簮鐨?DLL錛屽湪 9x 騫沖彴涓嬪彲鑳戒細鏈夐棶棰樸?br />

棰樺璇?br />銆銆鍙﹀錛屽叾瀹冧竴浜涙湰鏂囨湭鎻愬強鐨勯潪涓昏鐨勫嚱鏁幫紝璇瘋嚜琛屽弬瑙佹簮浠g爜涓殑娉ㄩ噴銆?br />鍐嶏紝鏈枃娑夊強 PE 鏂囦歡鏍煎紡鏂歸潰鐨勭煡璇嗭紝瀹冧滑宸茬粡瓚呭嚭浜嗘湰鏂囩殑鑼冨洿錛屽叿浣撲俊鎭彲鍙傝 MSDM 涓殑:

  • Peering Inside the PE: A Tour of the Win32 Portable Executable File Format 涓鏂囧拰
  • Microsoft Portable Executable and Common Object File Format Specification 涓鏂?
  • 鐗瑰埆鎰熻阿鍗㈡槬鏄庯紙Aming錛夊湪鎴戠紪鍐欐湰鏂囨椂鎵浣滅殑涓浜涙妧鏈柟闈㈢殑寤鴻鍜屾寚瀵?/strong>


    濡傛灉鏈枃瀵逛綘鐨勫紑鍙戞湁鎵甯姪錛屽茍涓斾綘鎵嬪ご鎭板ソ鏈夐浂閽便?/p>

    涓嶅鎵撹祻鎴戜竴鏉挅鍟★紝榧撳姳鎴戠戶緇垎浜紭縐鐨勬枃绔犮?br />





    ]]>
    銆愯漿璐淬慐ffectFrameworkhttp://m.shnenglu.com/mybios/archive/2006/11/20/15464.html鏉庨敠淇?mybios)鏉庨敠淇?mybios)Mon, 20 Nov 2006 08:54:00 GMThttp://m.shnenglu.com/mybios/archive/2006/11/20/15464.htmlhttp://m.shnenglu.com/mybios/comments/15464.htmlhttp://m.shnenglu.com/mybios/archive/2006/11/20/15464.html#Feedback0http://m.shnenglu.com/mybios/comments/commentRss/15464.htmlhttp://m.shnenglu.com/mybios/services/trackbacks/15464.html Effect Framework

    鎽樿

    鏈枃綆瑕佷粙緇嶄簡鍦―irectX 9 SDK涓彁渚涚殑Effect Framework鏀寔錛屼互鍙奃irectX FX鏂囦歡緇撴瀯鍜孧icrosoft Hight Level Shading Language鐨勫熀鏈煡璇嗐傛湰鏂囧亣瀹氳鑰呭DirectX Graphics鏈変竴瀹氫簡瑙o紝騫舵鍦ㄥ涔燚irectX Effect Framework銆傚笇鏈涜兘澶熶笌鍚勪綅璇昏呭叡鍚屾帰璁ㄣ佸垏紓嬨?

    綆浠?

    Effect鐨勮搗婧?

    鍦ㄨ綆楁満3緇村満鏅腑錛岀墿浣撹〃闈㈢殑鏉愯川浠h〃浜嗗叾鍏夊鐗規(guī)с傛渶綆鍗曠殑鏉愯川鍙互琛ㄧ幇涓篋iffuse棰滆壊錛孲pecular棰滆壊錛孍missive棰滆壊絳変俊鎭殑闆嗗悎錛涜屼負浜嗚〃鐜扮墿浣撹〃闈㈢殑緇嗚妭錛屽彲浠?鍦ㄦ潗璐ㄤ腑鍔犲叆涓寮犵汗鐞嗏斺旇繖浜涘氨鏋勬垚浜嗘渶鍩烘湰鐨勬潗璐ㄤ俊鎭傚湪浠ュ墠鐨凞irect3D紼嬪簭涓紝榪欎簺淇℃伅鍙互鐩存帴浼犻佺粰璁懼錛岀敱璁懼鑷姩鏍規(guī)嵁瀹冧滑鏉ヨ綆楃墿浣撹〃闈㈢殑鍏夊鏁堟灉銆備絾鏄紝 浠呬粎鏈夎繖浜涘熀鏈殑鏉愯川淇℃伅錛屽凡緇忎笉瓚充互婊¤凍娓告垙鍒朵綔鑰呯殑瑕佹眰鍜屾父鎴忕帺瀹剁殑瑕佹眰浜嗏斺斾粬浠笇鏈涘満鏅腑鐨勬潗璐ㄦ洿鍔犲鏉傦紝鍏鋒湁鏇村鐨勭粏鑺傦紝鏇村姞閫肩湡銆?

    鍦―irect3D涓紝闄や簡鏉愯川鐨勬蹇碉紝榪樺瓨鍦ㄤ竴涓覆鏌撶姸鎬侊紙Render State錛夌殑姒傚康銆傚湪Direct3D Device涓瓨鍦ㄥ緢澶氱殑娓叉煋鐘舵侊紝瀹冧滑鍙互鍦―irect3D榪涜娓叉煋鏃舵帶鍒舵覆鏌撶殑嫻佺▼鍜屾晥 鏋滐紝浠庤屽疄鐜版煇浜涘甫鏈夌壒鏁堢殑鏉愯川銆傜▼搴忓憳鍙互閫氳繃IDirect3DDevice*::SetRenderState()鏂規(guī)硶鏉ヨ緗繖浜涚姸鎬併傛墍鏈夌殑娓叉煋鐘舵侀兘鏄竴浜涚壒瀹氱殑鏁板箋傚鐘舵佺殑璁劇疆鍙互閫氳繃紜?緙栫爜瀹屾垚錛屽嵆鍦ㄧ▼搴忎腑璋冪敤SetRenderState()鏂規(guī)硶錛屽皢璁劇疆浠涔堟牱鐨勭姸鎬佲滃啓姝燴濆湪紼嬪簭閲岋紝浣嗘槸榪欐牱鍋氱殑緙虹偣灝辨槸澶笉鐏墊椿浜嗏斺斿鏋滄兂瑕佸疄鐜頒竴縐嶆柊鐨勬覆鏌撶姸鎬侊紝灝遍渶瑕佷慨鏀?紼嬪簭浠g爜銆傛墍浠ユ洿濂界殑涓縐嶆柟娉曟槸灝嗕負浜嗗疄鐜版煇涓縐嶇壒鏁堟潗璐ㄧ殑涓浜涙覆鏌撶姸鎬佸艱褰曞埌涓涓滄晥鏋滄枃浠垛濅腑錛岄氳繃鍦ㄧ▼搴忚繍琛屾椂璇誨彇璇ユ枃浠訛紝浠庝腑鍒嗘瀽鍑鴻繖浜涘鹼紝騫跺皢瀹冧滑浣滀負鍙?鏁拌皟鐢⊿etRenderState()銆傝繖鏍鳳紝瑕佹兂瀹炵幇涓縐嶆柊鐨勭壒鏁堬紝鍙渶淇敼鈥滄晥鏋滄枃浠垛濊屼笉鐢ㄦ洿鏀逛唬鐮併?

    Direct3D SDK鏄氳繃Effect Framework鏉ユ敮鎸佽繖縐嶆満鍒剁殑銆傝屽墠闈㈡墍榪扮殑鈥滄晥鏋滄枃浠垛濆湪Direct3D涓槸浠?.fx鏂囦歡瀛樺湪鐨勩傚湪fx鏂囦歡涓繚瀛樹簡涓哄疄鐜版煇涓鐗規(guī)晥鐨勬覆鏌撶姸鎬侊紝鍖呮嫭鐘舵佸悕 縐板拰瀹冧滑鐨勫搴斿箋傛墍浠ュ湪9.0浠ュ墠鐗堟湰鐨凞irectX涓氨宸茬粡鏈塃ffect Framework鍜孎X鏂囦歡浜嗭紝鏃╂湡鐨凟ffect Framework浠呬粎鏄負浜嗗疄鐜板娓叉煋鐘舵佽繘琛屾帶鍒躲?浣嗘槸闅忕潃璁$畻鏈烘樉紺虹‖浠舵妧鏈殑鍙戝睍錛屽浘褰㈠鐞嗗崟鍏冿紙GPU錛夋鍦ㄩ噸澶岰PU鎵璧拌繃鐨勮礬鈥斺旀柊涓浠g殑GPU宸茬粡鍏鋒湁浜嗗彲緙栫▼鐗規(guī)э紝紼嬪簭鍛樺彲浠ラ氳繃瀵笹PU緙栧啓涓孌電▼搴忔潵鎺у埗鍏舵覆鏌撶殑 杈撳嚭鏁堟灉銆傝繖縐嶇▼搴忎竴鑸О涓篠hader紼嬪簭銆傜洰鍓嶇殑Shader紼嬪簭鍒嗘垚涓ょ錛孷ertex Shader鍜孭ixel Shader銆俈ertex Shader涓昏鐢ㄤ簬瀵?緇寸綉鏍兼ā鍨嬬殑姣忎竴涓《鐐硅繘琛屽鐞嗭紝鑰孭ixel Shader涓昏鐢ㄤ簬瀵硅緇樺埗鍒板睆騫曚笂鐨勬瘡涓涓薄绱犺繘琛屽鐞嗐傞氳繃Shader錛岀▼搴忓憳鍙互鍒朵綔鍑虹浉褰撲赴瀵岀殑瀹炴椂娓叉煋鏁堟灉銆?/font>

    鍚孋PU涓鏍鳳紝瀵笹PU緙栫▼涔熸槸鍊熷姪涓瀹氱殑緙栫▼璇█鏉ヨ繘琛岀殑銆? 鍦―irectX 8涓紝瀵笹PU鐨勭紪紼嬫槸閫氳繃涓縐嶇被浼間簬姹囩紪鐨勮璦榪涜鐨勩傝屽湪DirectX 9涓紝浣跨敤浜嗕竴縐嶇被浼間簬C璇█鐨勯珮綰ц璦鈥斺擬icrosoft High Level Shading Language (HLSL) 銆?/font>

    鏃犺浣跨敤浠涔堣璦瀵笹PU緙栫▼錛岄兘闇瑕佹妸緙栬瘧濂界殑Shader紼嬪簭杈撻佸埌鏄懼崱鍘匯侱irect3D Device鍙互閫氳繃SetVertexShader()鍜孲etPixelShader()鏉ュ悜鏄懼崱杈撻丼hader紼嬪簭銆傜劧鑰岋紝鐢?浜嶴hader鍜屾潗璐ㄥ叿鏈夊崄鍒嗙揣瀵嗙殑鍏崇郴鈥斺斾竴鑸潵璇達紝涓涓猄hader灝辨槸涓轟簡瀹炵幇涓縐嶇壒孌婄殑鏉愯川鈥斺旀渶濂芥槸鑳藉灝哠hader紼嬪簭涓庢潗璐ㄨ繘琛屾暣鍚堛?鎵浠ワ紝鍦―irectX 8鍜孌irectX 9涓紝鍘熸潵鐨凟ffect Framework鍙戠敓浜嗘墿鍏呪斺斿湪鍘熸潵鐨勫熀紜涓婂姞鍏ヤ簡瀵筍hader紼嬪簭鐨勬敮鎸併傜▼搴忓憳鍙互鎶奦ertex Shader鍜孭ixel Shader紼嬪簭浠ュ嚱鏁?鐨勬柟寮忕洿鎺ヤ功鍐欏湪FX鏂囦歡涓?/font>

    聽.FX鏂囦歡

    FX鏂囦歡涓殑鍐呭澶ц嚧鍙互鍒嗘垚鍑犻儴鍒嗭細

    • 棰勭紪璇戞爣蹇?
    • 鍙橀噺琛?
    • 緇撴瀯瀹氫箟
    • 鍑芥暟
    • Technique

    棰勭紪璇戞爣蹇楋細棰勭紪璇戞爣蹇楀寘鎷?

    • #define
    • #elif
    • #else
    • #endif
    • #error
    • #if
    • #ifdef
    • #ifndef
    • #include
    • #line
    • #pragma
    • #undef

    鍏朵腑鏈甯哥敤鍒扮殑鏄?include鍜?define錛屽悓C璇█涓殑鎰忎箟寰堢浉浼鹼細鐢?include鍙互鍦ㄤ竴涓狥X鏂囦歡涓紩鍏ュ彟澶栦竴涓垨澶氫釜鏂囦歡銆?define鍙互瀹氫箟FX鏂囦歡涓殑瀹忔浛鎹€備緥濡傦細

    #include "helper_Funcs.fx" 聽聽聽聽 //寮曞叆涓涓悕涓篽elper_funcs.fx鐨刦x鏂囦歡
    #include "public_variables.fh" //寮曞叆涓涓悕涓簆ublic_variables.fh鐨勬枃浠?/span>
    #define MATRICES_COUNT 25聽聽聽聽聽 //瀹氫箟瀹廙ATRICES_COUNT涓?5
    #define VSHADER VShader_2_0聽聽聽 //瀹氫箟瀹廣SHADER涓篤Shader_2_0

    #include甯︽潵鐨勫ソ澶勫拰C涓篃鏄竴鏍風殑錛嶆?zhèn)ㄥ彲浠ュ湪涓涓ご鏂囦歡涓畾涔変竴浜涘叕鏈夊彉閲忋佸嚱鏁扮瓑錛屽湪鍏朵粬鏂囦歡涓紩鐢ㄥ畠浠紞灝變笉鐢ㄥ啓寰堝閬嶄簡銆備緥濡傦細

    鏂囦歡public.fh:

    mat4x4 matWorldViewProj; // 4x4涓栫晫錛嶈錛嶆姇褰卞彉鎹㈢煩闃?/span>
    float3 lightPosisiton;聽聽 // 涓夌淮鍏夋簮浣嶇疆鍚戦噺
    float4 lightColor;聽聽聽聽聽聽 // 鍏夋簮鐨勯鑹?/span>
    float time;聽聽聽聽聽聽聽聽聽聽聽聽聽 // 褰撳墠鏃墮棿

    //瀹氫箟涓涓悕涓篤S_OUTPUT鐨勭粨鏋勩傚叧浜庣粨鏋勪綋瀹氫箟錛屼笅鏂囦腑浼氭湁浠嬬粛

    struct VS_INPUT
    {
    聽聽聽 float4 LocalPos : POSITION;
    聽聽聽 float3 Normal : NORMAL;
    聽聽聽 float4 Color : COLOR;聽
    聽聽聽聽float2 Texcoord : TEXCOORD0;
    };

    struct VS_OUTPUT
    {
    聽聽聽 float4 WorldPos : POSITION;
    聽聽聽 float4 Color : COLOR;
    聽聽聽 float2 Texcoord : TEXCOORD0;
    };

    //瀹氫箟涓涓悕涓篊aculateWorldPosition鐨勫嚱鏁般傚叧浜庡嚱鏁板畾涔夛紝涓嬫枃涓細鏈変粙緇?

    float3 CaculateWorldPosition( float4 LocalPos )
    {
    聽聽聽 return mul( LocalPos, matWorldViewProj);
    }

    榪欐牱錛屽綋鎴戜滑鍦ㄥ彟澶栦竴涓枃浠朵腑include榪欎釜澶存枃浠舵椂錛屼笂闈㈡墍鏈夌殑瀹氫箟閮藉彲浠ョ洿鎺ヤ嬌鐢ㄤ簡銆?

    鏂囦歡client.fx:

    #include "public.fh"


    VS_OUTPUT VS_main( VS_INPUT In ) // 鍙互鐩存帴浣跨敤緇撴瀯浣撳畾涔塚S_OUTPUT鍜孷S_INPUT
    {
    聽聽聽 VS_OUTPUT Out = 0;
    聽聽聽 Out.WorldPos = CaculateWorldPosition( In.LocalPos ); // 鍙互鐩存帴浣跨敤鍑芥暟
    聽聽聽 Out.Color = In.Color;
    聽聽聽 Out.Texcoord = In.Texcoord;
    }

    榪欐牱涓嶄粎鍙互澶嶇敤浠g爜錛岃繕鍙互浣垮彉閲忓悕銆佺粨鏋勪綋銆佸嚱鏁板悕鐨勫畾涔夌粺涓銆?

    鑰?define涓嶄粎浠呭彲浠ヤ嬌鏌愪簺甯擱噺鍏鋒湁姣旇緝鏈夋剰涔夌殑鍚嶇О錛岄氳繃涓?ifdef錛?ifndef, #else, #endif絳夌粨鍚堜嬌鐢紝榪樺彲浠ョ敤鏉ユ牴鎹竴浜涢厤緗帶鍒剁紪璇戣繃紼嬨?

    鍙橀噺琛?/p>

    姣忎釜FX鏂囦歡閮藉彲浠ユ湁鑻ュ共鍙傛暟鍙橀噺錛岄氳繃Effect Framework鍙互鍦ㄧ▼搴忎腑璇嗗埆鍑鴻繖浜涘弬鏁扮殑綾誨瀷銆佸悕縐板拰鐢ㄩ旓紝榪欐牱灝卞彲浠ュ皢紼嬪簭涓殑涓浜涘弬鏁拌緭閫佸埌Effect涓幓錛屼粠鑰屾洿鍔犵伒媧?鐨勬帶鍒舵晥鏋溿傚弬鏁扮殑綾誨瀷寰堝錛屽彲浠ユ槸int, float, matrix, texture絳夌瓑銆備緥濡傦細

    matrix matWorld;聽聽聽聽//瀹氫箟涓涓悕涓簃atWorld鐨勭煩闃電被鍨嬪弬鏁板彉閲?/span>
    float time;聽聽聽聽聽聽聽聽聽//瀹氫箟涓涓悕涓簍ime鐨勬誕鐐圭被鍨嬪弬鏁板彉閲?
    texture texDiffuse; //瀹氫箟涓涓悕涓簍exDiffuse鐨勭汗鐞嗙被鍨嬪弬鏁板彉閲?/span>

    鍙﹀錛屾瘡涓彉閲忚繕鏈夊墠緙淇グ絎︺丼emantic銆丄nnotation絳夛紝闄愪簬綃囧箙錛屽湪榪欓噷涓嶅啀璧樿堪錛屽叿浣撶殑浠嬬粛璇峰弬鑰僁irectX C++甯姪鏂囨。鐨凞irectX Graphics > Reference > HLSL Shader Reference > Variable Declaration Syntax鏉$洰銆?

    緇撴瀯瀹氫箟

    鍦‵X鏂囦歡涓彲浠ュ畾涔夌粨鏋勪綋錛岃繖浜涚粨鏋勪綋涓鑸敤浜嶴hader鍑芥暟鐨勫弬鏁板拰榪斿洖鍊箋傜粨鏋勪綋鐨勫畾涔変笌C璇█鏂瑰紡鍙婂叾綾諱技錛屼緥濡傦細

    struct VS_OUTPUT //緇撴瀯鍚嶇О
    {
    聽聽聽 float4 Pos : POSITION; //鎴愬憳鍙橀噺銆?/span>
    聽聽聽 float4 Color : COLOR;
    聽聽聽 float2 Texcoord : TEXCOORD0;
    };

    涓婇潰姣忎釜鎴愬憳鍙橀噺鍚庨潰鐨勬爣璇嗙鏄鍙橀噺鐨剆emantic錛孒LSL緙栬瘧鍣ㄦ牴鎹繖涓爣璇嗙鏉ョ‘瀹氳鍙橀噺鐨勭敤澶勩備笉涓瀹氶潪寰楁槸緇撴瀯浣撴垚鍛樺彉閲忔墠鏈塻emantic錛屼竴鑸潵璇碨hader鐨勮緭鍏ヨ緭鍑哄弬鏁板彉閲忛兘鍙互鏈塻emantic銆?/p>

    鍑芥暟

    鍑芥暟閮ㄥ垎鏄湪Effect Framework鍔犲叆浜嗗Vertex Shader鍜孭ixel Shader鐨勬墿鍏呭悗鎵嶅姞鍏ュ埌FX鏂囦歡涓殑銆侳X鏂囦歡涓殑鍑芥暟鐨勫唴瀹瑰彲浠ョ敤姹囩紪褰㈠紡涔﹀啓錛屼篃鍙互鐢℉LSL緙栧啓銆傜洰鍓嶄竴鑸?閮芥槸浣跨敤HLSL銆傜敤榪欑璇█涔﹀啓鐨勫嚱鏁頒笌C璇█鍑芥暟鍗佸垎綾諱技錛屽彲浠ヨ錛屽彧瑕佸榪嘋璇█錛屼功鍐橲hader鍑芥暟灝辯話緇版湁浣欎簡銆傚湪鍚屼竴涓猣x鏂囦歡涓彲浠ュ畾涔夊緢澶氬嚱鏁幫紝鍦ㄥ嚱鏁頒腑涔熷彲浠ヤ簰 鐩歌皟鐢紝浣嗘槸鏈緇圫hader紼嬪簭鐨勫叆鍙e皢鍦╢x鏂囦歡鐨凾echnique閮ㄥ垎涓寚瀹氥傚浜庡摢涓嚱鏁版槸Vertex shader鍑芥暟錛屽摢涓槸Pixel shader鍑芥暟錛屼篃鏄湪Technique涓寚瀹氱殑銆傚叧浜嶵echnique錛屽皢鍦ㄤ笅鏂囦腑浠嬬粛銆?渚嬪瓙錛?

    float4 CalcDiffuseColor( float3 Normal )
    {
    聽聽聽 float4 Color; ...//鐢ㄤ簬瀹炵幇璇ュ嚱鏁板姛鑳界殑澶氭潯璇彞
    聽聽聽 return Color;
    }

    VS_OUTPUT Vertex_Shader( float4 InPos : POSITION,
    聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 float3 InNor : NORMAL,聽
    聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 float3 InTexcoord : TEXCOORD )
    {
    聽聽聽 VS_OUTPUT Out; ...//鐢ㄤ簬瀹炵幇璇ュ嚱鏁板姛鑳界殑澶氭潯璇彞
    聽聽聽 Out.Color = CalcDiffuseColor(InNor); //鍑芥暟璋冪敤
    聽聽聽 return Out;
    }

    姝e涓婃枃涓墍璇達紝Shader紼嬪簭鍒嗕負涓ょ錛歏ertex shader鍜孭ixel shader銆傚湪fx鍑芥暟涓氨鏈変袱縐嶇浉搴旂殑鍑芥暟錛歏ertex shader鍑芥暟鍜孭ixel Shader鍑芥暟銆俈ertex shader鍑芥暟鐨勮緭鍏ュ弬鏁版槸緗戞牸妯″瀷涓殑姣忎竴涓《鐐規(guī)暟鎹紝鍏惰緭鍑烘槸緇忚繃璇ュ嚱鏁扮壒孌婂鐞嗙殑欏剁偣鏁版嵁錛涜孭ixel Shader鍑芥暟鐨勮緭鍏ワ紝鍒欐槸緇忚繃紜歡鍏夋爡鍖栬繃紼嬪悗緇忚繃鎻掑肩殑Vertex shader杈撳嚭緇撴灉銆傝嚦浜嶱ixel shader鐨勮緭鍑猴紝涓鑸氨鏄粡榪囪鍑芥暟璁$畻寰楀埌鐨勪竴涓鑹插鹼紝鍗寵鐢誨埌鍚庡緙撳啿涓竴涓薄绱犱笂鐨勯鑹插箋備絾鏄繖涓滈鑹插尖濇湁鏃跺茍涓嶄竴瀹氫唬琛ㄩ鑹層傝屼笖瀵逛簬鏀寔澶歊enderTarget鐨勭‖浠訛紝Pixel shader榪樺彲浠ユ湁澶氫釜杈撳嚭錛屽垎鍒搴斾笉鍚岀殑RenderTarget銆?/p>

    technique

    technique鏄疐X鏂囦歡鐨勪富浣擄紝鏄湡姝h緗悇縐嶆覆鏌撶姸鎬佺殑鍦版柟錛屼篃鏄寚瀹氭墍浣跨敤鐨凷hader紼嬪簭鍏ュ彛鐨勫湴鏂廣傚湪鐞嗚ВTechnique鍓嶉鍏堣鐞嗚ВPass鐨勬蹇點侾ass鏄疶echnique鐨勭粍鎴愰儴鍒?錛屼竴涓狿ass灝變唬琛ㄤ簡緇樺埗鏃剁殑涓閬嶃傞氬父涓轟簡杈懼埌涓縐嶆晥鏋滐紝浠呬粎緇樺埗涓閬嶇綉鏍兼ā鍨嬫槸涓嶅鐨勶紝闇瑕佸悜framebuffer涓嬈$粯鍒訛紝騫跺埄鐢ㄨ緗覆鏌撶姸鎬佷腑鐨凚lendState榪涜Alpha娣峰悎銆傝繖灝辨槸緇忓父鎻愬埌鐨勨淢uli-pass Rendering鈥濄備絾鏄殢鐫紜歡瓚婃潵瓚婂己澶э紝Shader紼嬪簭鐨勫姛鑳借秺鏉ヨ秺寮猴紝鐩墠鐨勮秼鍔挎槸鎵鏈夌殑鐗規(guī)晥鏉愯川閮藉皢鍙互鐢ㄨ秺鏉ヨ秺灝戜釜Pass鏉ュ畬鎴愩?涓涓猼echnique涓紝鍙互瀛樺湪涓涓垨澶氫釜Pass錛屼絾鏄嚦灝戣鏈変竴涓狿ass鏃惰technique鎵嶄細璧峰疄闄呬綔鐢ㄣ傚綋瀛樺湪澶氫釜pass鏃訛紝榛樿鎯呭喌涓嬪湪娓叉煋鏃跺皢浼氭寜鐓ass鍦ㄦ枃浠朵腑鐨勫墠鍚庨『搴?浣滀負娓叉煋鏃剁殑鍓嶅悗欏哄簭銆倀echnique鍜孭ass涓殑鍐呭閮芥槸浠ュぇ鎷彿鎷搗鏉ャ?

    technique鐨勪緥瀛愶細

    technique Tec_Shader_1_X //瀹氫箟涓涓悕涓篢ec_Shader_1_X鐨則echnique
    {
    聽聽聽 pass P0 //涓涓悕涓篜0鐨刾ass
    聽聽聽 {
    聽聽聽聽聽聽聽 VertexShader = compile vs_1_1 Vertex_Shader(); //璁劇疆Vertex Shader紼嬪簭鍏ュ彛鍑芥暟
    聽聽聽聽聽聽聽 PixelShader = compile ps_1_1 Pixel_Shader();聽聽 //璁劇疆Pixel Shader紼嬪簭鍏ュ彛鍑芥暟
    聽聽聽聽聽聽聽 AlphaBlendEnable= true;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //璁劇疆娓叉煋鐘舵伮犅犅犅犅犅犅?
    聽聽聽聽聽聽聽 SrcBlend = SrcAlpha;聽聽
    聽聽聽聽聽聽聽 DestBlend = InvSrcAlpha;聽
    聽聽聽聽聽聽聽 ... //鍏朵粬璁劇疆
    聽聽聽 }
    聽聽聽 pass P1 //涓涓悕涓篜1鐨刾ass
    聽聽聽 {
    聽聽聽聽聽聽聽 ...
    聽聽聽 }
    }

    ID3DXEffect鎺ュ彛

    涓婇潰浠嬬粛浜嗗緢澶歠x鏂囦歡鐩稿叧鍐呭錛屼絾鏄湪紼嬪簭涓浣曡鍙栧拰鍒嗘瀽榪欎簺fx鏂囦歡鍛紵鍦ㄧ▼搴忎腑瀵逛簬璇誨彇fx鏂囦歡錛屾帶鍒舵覆鏌撶姸鎬併佽緗甋hader紼嬪簭絳夊伐浣滈兘鏄氳繃D3DX搴撲腑鐨処D3DXEffect鎺ュ彛鏉ュ疄鐜扮殑銆侷D3DXEffect鎺ュ彛鎻愪緵浜嗗ぇ閲忕殑鏂規(guī)硶錛屽熀鏈笂鍒嗕負鍑犱釜鏂歸潰錛?

    • 鑾峰緱Effect鍙傛暟鍙橀噺淇℃伅
    • 璁劇疆Effect鍙傛暟鍙橀噺
    • 鑾峰緱technique淇℃伅
    • 璁劇疆褰撳墠浣跨敤鐨則echnique
    • 寮濮嬪拰緇撴潫浣跨敤褰撳墠鐨則echnique
    • 鎵ц涓涓猵ass錛堟覆鏌撶粯鍒墮亶錛?

    ID3DXEffect鎺ュ彛鐨勫垱寤猴細 閫氳繃D3DX搴撲腑鐨凞3DXCreateEffectFromFile()鍑芥暟錛屽彲浠ユ牴鎹竴涓寚瀹氱殑鏂囦歡鐨勫唴瀹規(guī)潵鍒涘緩涓涓狪D3DXEffect鎺ュ彛銆傚湪璇ュ嚱鏁版墽琛屾垚鍔熷悗錛屾墍鍒涘緩鐨勬帴鍙d腑灝卞寘鍚簡鏂囦歡閲屾墍瀵瑰簲鐨?鎵鏈夊唴瀹癸紝鍖呮嫭鍙傛暟鍙橀噺琛ㄣ丼hader紼嬪簭銆乼echnique鍜宲ass絳夈?

    ID3DXEffect鎺ュ彛鐨勪嬌鐢細 閫氳繃璇ユ帴鍙g殑鏂規(guī)硶鍙互鑾峰緱FX鏂囦歡涓殑鎵鏈変俊鎭紝騫惰緗弬鏁板彉閲忓拰褰撳墠鐨則echnique銆傛墍鏈夌殑鍙傛暟鍙橀噺銆乼echnique銆乸ass銆乻hader絳夌瓑閮芥湁鑷繁鐨勫悕縐幫紝鏍規(guī)嵁榪欎簺鍚嶇О錛岄氳繃璋冪敤ID3DXEffect::GetParameterByName()銆両D3DXEffect::GetTechniqueByName()鍜孖D3DXEffect::GetPassByName()絳夋柟娉曞氨鍙互鑾峰緱榪欎簺瀵硅薄鐨勫彞鏌勶紝浠庤屽湪璋冪敤 ID3DXEFFECT::Set***()榪涜璁劇疆鏃朵嬌鐢ㄥ彞鏌勮屼笉鏄瓧絎︿覆榪涜绱㈠紩鏉ユ彁楂樻晥鐜囥?/p>

    閫氳繃ID3DXEffect::GetParameterDesc()銆両D3DXEffect::GetTechniqueDesc()鍜孏etPassDecs絳夋柟 娉曞彲浠ヨ幏寰楀叧浜庢寚瀹氬璞$殑鎵鏈夌粏鑺傛弿榪頒俊鎭?D3DX搴撲腑瀹氫箟浜嗕竴涓狣3DXPARAMETER_DESC緇撴瀯鏉ヤ笓闂ㄨ〃紺哄弬鏁扮殑綾誨瀷銆傞氳繃ID3DXEffect::GetParameterDesc()鏂規(guī)硶錛屽彲浠ヤ負涓涓弬鏁拌幏寰楄繖鏍蜂竴涓粨鏋勭殑鏁版嵁銆?

    typedef struct _D3DXPARAMETER_DESC
    {
    聽聽聽 LPCSTR Name;聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //鍙傛暟鍙橀噺鍚?
    聽聽聽 LPCSTR Semantic;聽聽聽聽聽聽聽聽聽聽 //鍙傛暟鍙橀噺鐨凷emantic
    聽聽聽 D3DXPARAMETER_CLASS Class; //鍙傛暟鍙橀噺鐨勭被鍒紝鍙互鏄爣閲忋佺煝閲忋佺煩闃點佸璞″拰緇撴瀯
    聽聽聽 D3DXPARAMETER_TYPE Type;聽聽 //鍙傛暟鍙橀噺鐨勭被鍨?
    聽聽聽 UINT Rows;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//鏁扮粍鍨嬪弬鏁扮殑琛屾暟
    聽聽聽 UINT Columns;聽聽聽聽聽聽聽聽聽聽聽聽聽 //鏁扮粍鍨嬪弬鏁扮殑鍒楁暟
    聽聽聽 UINT Elements;聽聽聽聽聽聽聽聽聽聽聽聽 //鏁扮粍涓殑鍏冪礌涓暟
    聽聽聽 UINT Annotations;聽聽聽聽聽聽聽聽聽 //鍙傛暟鍙橀噺鐨凙nnotation涓暟
    聽聽聽 UINT StructMembers;聽聽聽聽聽聽聽 //緇撴瀯鍨嬪弬鏁板彉閲忔垚鍛樼殑涓暟
    聽聽聽 DWORD Flags;聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //鍙傛暟灞炴?
    聽聽聽 UINT Bytes;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //鍙傛暟澶у皬錛屼互瀛楄妭璁?
    } D3DXPARAMETER_DESC;

    鍏朵腑鐨勫弬鏁扮被鍨嬪彲浠ユ湁涓嬪垪鍑犵錛?

    typedef enum _D3DXPARAMETER_TYPE
    {
    聽聽聽 D3DXPT_VOID, //Void鍨嬫寚閽?
    聽聽聽 D3DXPT_BOOL, //Bool鍨?
    聽聽聽 D3DXPT_INT, //鏁村瀷
    聽聽聽 D3DXPT_FLOAT, //嫻偣鍨?
    聽聽聽 D3DXPT_STRING, //瀛楃涓?
    聽聽聽 D3DXPT_TEXTURE, //綰圭悊
    聽聽聽 D3DXPT_TEXTURE1D, //涓緇寸汗鐞?
    聽聽聽 D3DXPT_TEXTURE2D, //浜岀淮綰圭悊
    聽聽聽 D3DXPT_TEXTURE3D, //涓夌淮綰圭悊
    聽聽聽 D3DXPT_TEXTURECUBE, //绔嬫柟浣撶幆澧冪汗鐞?
    聽聽聽 D3DXPT_SAMPLER, //綰圭悊鍙栨牱鍣?
    聽聽聽 D3DXPT_SAMPLER1D, //涓緇寸汗鐞嗗彇鏍峰櫒
    聽聽聽 D3DXPT_SAMPLER2D, //浜岀淮綰圭悊鍙栨牱鍣?
    聽聽聽 D3DXPT_SAMPLER3D, //涓夌淮綰圭悊鍙栨牱鍣?
    聽聽聽 D3DXPT_SAMPLERCUBE, //绔嬫柟浣撶幆澧冪汗鐞嗗彇鏍峰櫒
    聽聽聽 D3DXPT_PIXELSHADER, //Pixel Shader紼嬪簭
    聽聽聽 D3DXPT_VERTEXSHADER, //Vertex Shader紼嬪簭
    聽聽聽 D3DXPT_PIXELFRAGMENT, //Pixel Shader鐗囨柇
    聽聽聽 D3DXPT_VERTEXFRAGMENT, //Vertex Shader鐗囨柇
    聽聽聽 D3DXPT_FORCE_DWORD = 0x7fffffff
    } D3DXPARAMETER_TYPE;

    鑰岀湡姝h璁〦ffect璧蜂綔鐢紝闇瑕佸湪緇樺埗緗戞牸妯″瀷鍓嶅悗璋冪敤ID3DXEffect::BeginPass()鍜孍ndPass鏂規(guī)硶銆傚湪璋冪敤榪欎袱涓嚱鏁頒箣鍓嶅拰涔嬪悗錛岃繕闇璋冪敤ID3DXEffect::Begin()鍜?ID3DXEffect::End()鏂規(guī)硶鏉ョ晫瀹氭嬈ffect璁劇疆鐨勮搗姝€傚ぇ鑷寸殑褰㈠紡濡備笅錛?

    LPD3DXEffect pd3dEffect錛?span class="unnamed1"> //ID3DXEffect鎺ュ彛鎸囬拡
    ... //鍒濆鍖栬鎸囬拡
    ... //紼嬪簭涓殑鍏朵粬閮ㄥ垎
    ...

    UINT numPasses; //鐢ㄤ簬鎺ュ彈褰撳墠鎵浣跨敤鐨則echnique涓殑pass涓暟
    pd3dEffect->Begin( & numPasses, 0 ) //寮濮嬩嬌鐢ㄥ綋鍓嶇殑technique
    for( UINT iPass = 0; iPass < numPasses; iPass ++ )
    {
    聽聽聽 //閬嶅巻鎵鏈夌殑pass
    聽聽聽 pd3dEffect->BeginPass( iPass ); //璋冪敤BeginPass
    聽聽聽 DrawMesh();聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //鐒跺悗榪涜妯″瀷鐨勭粯鍒躲?
    聽聽聽 pd3dEffect->EndPass();聽聽聽聽聽聽聽聽聽 //璋冪敤EndPass
    }
    pd3dEffect->End();聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //涓嶈蹇樿緇撴潫褰撳墠technique

    3DS MAX瀵笵irectX 9 Shader Material鐨勬敮鎸侊紱Effect鏁版嵁鑾峰彇鍜屽鍑?/strong>

    鍦‵X鏂囦歡涓殑鍙傛暟錛屽ぇ閮ㄥ垎閮芥槸鐢ㄦ潵璋冩暣FX鏂囦歡鎵鎸囧畾鐨凟ffect鐨勪竴浜涚粏鑺傦紝渚嬪錛屼竴縐嶅甫鏈夊嚬鍑哥汗鐞嗙殑鏁堟灉錛屽彲鑳藉湪FX涓氨鏈変竴涓弬鏁版帶鍒剁潃鍑瑰嚫涓嶅鉤鐨勭▼搴︺傝岃繖浜涘弬鏁版槸闇瑕佺敱緹庡伐鏉ヨ皟鏁寸殑銆傚彟澶栵紝緹庡伐涔熼渶瑕佹湁涓涓斿緞鑳藉灝咶X鏂囦歡瀹氫箟鐨凟ffect璧嬩簣鍒頒竴涓ā鍨嬫垨瀹冪殑涓閮ㄥ垎涓婂幓銆傚悓鏃剁編宸ヤ篃搴旇鑳藉瀹炴椂鐨勯瑙堣Effect鍦ㄦā鍨嬩笂鐨勫疄闄呮晥鏋溿?鍦ㄤ互鍓嶏紝瀹炵幇榪欎簺瑕佹眰鍙兘閫氳繃鑷埗鏁堟灉棰勮鍣ㄣ佹ā鍨嬬紪杈戝櫒鎴栬呬負DCC杞歡緙栧啓鎻掍歡鏉ュ畬鎴愩傝繖瀵逛簬灝忕殑宸ヤ綔緇勫拰宸ユ湡杈冪煭鐨勯」鐩潵璇存槸闈炲父鍥伴毦鐨勩傚垢榪愮殑鏄紝鐩墠鐨凞CC杞歡 宸茬粡寮濮嬩負娓告垙鍒朵綔鎻愪緵涓板瘜鐨勬敮鎸佸姛鑳姐傞氳繃DCC杞歡鑷韓灝卞彲浠ラ瑙堝埌瀹炴椂Effect鐨勬晥鏋滐紝騫惰皟鏁村叾鍙傛暟銆傚湪銆婇緳鐨勪紶璇淬嬭繖涓」鐩腑錛屾垜浠嬌鐢?DS MAX 6.0鏉ヤ綔涓烘ā鍨嬪緩绔?宸ュ叿鍜孲hader棰勮宸ュ叿銆?

    鍦?DS MAX 6.0涓紝鏂板姞鍏ヤ簡涓縐嶆潗璐ㄧ被鍨嬧斺擠irectX 9 Shader鏉愯川銆傝繖縐嶆潗璐ㄦ槸鍩轟簬FX鏂囦歡鐨勩備竴涓狥X鏂囦歡灝卞彲浠ヤ唬琛ㄤ竴縐嶆潗璐ㄣ傚畠鍙互鍚孧AX涓殑鍏朵粬鏉愯川涓鏍瘋祴浜堝埌妯″瀷涓?銆傚湪MAX鐨刅iewport涓彲浠ュ疄鏃跺湴瑙傚療鍒癋X鏂囦歡涓璁$殑鏁堟灉銆傞氳繃涓篎X涓殑鍙傛暟璁劇疆鐗瑰畾鐨凷emantic錛屽彲浠ュ皢榪欎簺鍙傛暟涓嶮AX涓殑鍦烘櫙淇℃伅鑱旂郴璧鋒潵錛屽鎽勫儚鏈轟綅緗佷笘鐣屽彉鎹㈢煩 闃電瓑銆傚浜庢帶鍒禘ffect鏁堟灉鐨勪竴浜涙湰鍦板弬鏁幫紝鍙互閫氳繃涓哄畠浠坊鍔犵壒瀹氱殑Annotation錛屼嬌MAX鑳藉鐩存帴璇嗗埆榪欎簺鍙傛暟騫跺湪鐢ㄦ埛鐣岄潰涓樉紺哄畠浠殑鍚嶇О鍜岃皟鑺傛帶浠躲傚搴斾笉鍚岀被鍨嬬殑鍙?鏁幫紝MAX鍙互涓哄畠浠敓鎴愪笉鍚岀殑璋冭妭鎺т歡銆傝繖鏍鳳紝榪欑鏉愯川灝卞拰MAX鐨勫叾浠栨潗璐ㄤ竴鏍鳳紝鍙互鏇存敼綰圭悊絳夌瓑鐨勫弬鏁頒簡銆?瀵逛簬緹庡伐鏉ヨ錛岄氳繃榪欑鐢ㄦ埛鐣岄潰灝卞彲浠ヨ皟鏁磋FX鏉愯川鐨勫弬鏁拌揪鍒版渶濂界殑鏁堟灉銆?/p>

    浣嗘槸緹庡伐鎵璋冩暣鐨勭粨鏋滃繀欏昏鑳藉淇濆瓨涓嬫潵鎵嶆湁鎰忎箟銆傝繖涓伐浣滃氨寰楃敱紼嬪簭鍛樻潵瀹屾垚浜嗐傝淇濆瓨3DS MAX涓紪杈戠殑鎵鏈夊唴瀹癸紝闇瑕佷負3DS MAX緙栧啓鏂囦歡瀵煎嚭鎻掍歡錛屽皢鍏跺唴閮ㄦ暟鎹繚瀛樺湪鐗瑰畾鏍煎紡鐨勬枃浠朵腑銆傚湪銆婇緳鐨勪紶璇淬嬭繖涓」鐩腑錛屾垜浠嬌鐢∕icrosoft DirectX .X 鏂囦歡銆傚鏋滀粠澶村紑濮嬪啓瀵煎嚭鎻掍歡錛屽伐浣滈噺鏄浉褰撳ぇ鐨勶紱騫歌繍鐨勬槸錛屽湪Microsoft DirectX SDK Extra涓彁渚涗簡涓涓兘澶熷鍑烘ā鍨嬪拰3DS MAX鏍囧噯鏉愯川鍒癤鏂囦歡鐨勬彃浠舵簮浠g爜銆傞氳繃淇敼璇ユ簮浠g爜錛屽彲浠ヤ嬌瀹冭兘澶熷鍑篋irectX 9 Shader鏉愯川銆傚湪3DS MAX 6 SDK涓柊澧炲姞浜嗕竴涓狪DxMaterial鎺ュ彛錛岄氳繃鏌ヨ涓涓狪Material鎺ュ彛鏄惁涓篒DxMaterial鎺ュ彛錛屽氨鍙互紜畾璇ユ潗璐ㄦ槸鍚︿負DirectX 9 Shader鏉愯川銆傞氳繃IDxMaterial鎺ュ彛鍙互鑾峰緱璇ユ潗璐ㄥ搴旂殑FX鏂囦歡鐨勬枃浠跺悕錛屼互鍙婂叾鍙傛暟淇℃伅銆傝繖鏍峰氨鍙互灝嗗畠浠鍑轟簡銆?

    .X鏂囦歡涓Effect鐨勬敮鎸侊紱EffectInstance鍜孍ffectDefault

    Microsoft DirectX .X鏂囦歡鐨勬牸寮忔槸鍩轟簬妯℃澘鐨勩佸彲鎵╁睍鐨勬枃浠舵牸寮忋傞氳繃涓哄叾鍒跺畾鏂扮殑妯℃澘錛屽氨鍙互鍦ㄥ叾涓姞鍏ユ柊鐨勫唴瀹廣備竴鑸殑.X鏂囦歡涓殑鍐呭鏈変笁緇村満鏅殑鐗╀綋灞傜駭鍏崇郴銆佺綉鏍兼ā鍨嬪嚑浣曟暟鎹佹潗璐ㄤ俊鎭佸姩鐢諱俊鎭瓑銆傚湪DirectX鐨勪紬澶歑鏂囦歡妯℃澘涓湁涓涓ā鏉挎槸涓撻棬鐢ㄦ潵浠h〃Effect鐨勫疄渚嬬殑銆傚綋涓涓狥X鏂囦歡鐨勫弬鏁拌緹庡伐鍔犱互璋冩暣浠庤屽叿澶囦竴浜涚壒瀹氱殑鍊間箣鍚庯紝璇?FX鏂囦歡鍜岃繖浜涘弬鏁板肩殑闆嗗悎灝卞艦鎴愪簡涓涓狤ffect瀹炰緥銆傝妯℃澘鐨勫畾涔夊涓嬶細

    template EffectInstance
    {
    聽聽聽 < E331F7E4-0559-4cc2-8E99-1CEC1657928F >
    聽聽聽 STRING EffectFilename;
    聽聽聽 [ ... ]
    }

    鍏朵腑錛?EffectFilename浠h〃浜嗚Effect瀹炰緥涓殑FX鏂囦歡鍚嶏紝 [ ... ]浠h〃鍦ㄥ叾涓彲浠ユ彃鍏ヤ換浣昘鏂囦歡妯℃澘瀵瑰簲鐨勬暟鎹傝繖鏍峰氨鍙互浠h〃浠諱綍綾誨瀷鐨勫弬鏁板箋?

    鐒惰岃鎯寵Direct3D紼嬪簭鑳藉璇嗗埆[ ... ]涓殑鍐呭錛岄渶瑕佷嬌鐢╔鏂囦歡妯℃澘涓殑EffectParam緋誨垪妯℃澘錛屽寘鎷珽ffectParamDWord, EffectParamFlaots, EffectParamString銆傞氳繃榪欎笁縐嶆ā鏉垮搴旂殑鏁版嵁錛屾墍鏈夌被鍨嬬殑Effect鍙傛暟鍊奸兘鍙互琚褰曞湪X鏂囦歡涓?

    鏈鍚庯紝EffectInstance鏁版嵁闇瑕佽鏀劇疆鍦∕aterial鏁版嵁涓墠鍙互琚瘑鍒?/p>

    Material妯℃澘錛?

    template Material
    {
    聽聽聽 < 3D82AB4D-62DA-11CF-AB39-0020AF71E433 >
    聽聽聽 ColorRGBA faceColor;
    聽聽聽 FLOAT power;
    聽聽聽 ColorRGB specularColor;
    聽聽聽 ColorRGB emissiveColor;
    聽聽聽 [...]
    }

    鍓嶉潰鐨勪竴浜涢鑹叉ā鏉胯〃鏄庡湪Material鏁版嵁涓繖浜涢鑹蹭俊鎭槸蹇呴』鏈夌殑錛岃屾渶鍚庣殑[ ... ]鍒欎唬琛ㄥ彲浠ユ彃鍏ヤ換浣昘鏂囦歡妯℃澘瀵瑰簲鐨勬暟鎹傛垜浠殑EffectInstance鏁版嵁灝卞彲浠ユ斁緗湪榪欓噷 銆?

    涓句竴涓畝鍗曠殑渚嬪瓙錛?

    Material { //鏉愯川
    聽聽聽 0.500000;0.500000;0.500000;1.000000;; //faceColor
    聽聽聽 0.000000; //power
    聽聽聽 0.900000;0.900000;0.900000;; //specularColor
    聽聽聽 0.000000;0.000000;0.000000;; //emissiveColor
    聽聽聽 EffectInstance
    聽聽聽 {聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//[...]錛岃繖閲屾槸EffectInstance
    聽聽聽聽聽聽聽 "SkyboxNew01.fx";聽聽聽聽聽聽聽 //fx鏂囦歡鐨勬枃浠跺悕銆傞氳繃D3DXCreateEffectFromFile()鍙互
    聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //寤虹珛璇ユ枃浠跺搴旂殑D3DXEffect瀵硅薄
    聽聽聽聽聽聽聽 //涓嬮潰鏄疎ffectInstance涓殑[...]

    聽聽聽聽聽聽聽 EffectParamString聽
    聽聽聽聽聽聽聽聽{聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //EffectParamString錛屽嵆瀛楃涓插瀷鍙傛暟鍊?/span>聽
    聽聽聽聽聽聽聽聽聽聽聽聽"TexCloudTop";聽聽聽聽聽聽 //鍙傛暟鐨勫悕縐幫紝閫氳繃璇ュ悕縐拌皟鐢↖D3DXEffect::GetXXXByName()鏂規(guī)硶
    聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //鍙互寰楀埌涓巉x鏂囦歡涓搴旂殑鍙傛暟銆?
    聽聽聽聽聽聽聽聽聽聽聽 "DarkClouds01.jpg";聽 //鍙傛暟鐨勫悸?/span>
    聽聽聽聽聽聽聽聽}聽
    聽聽聽聽聽聽聽聽EffectParamString
    聽聽聽聽聽聽聽 {聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //鍚屼笂
    聽聽聽聽聽聽聽聽聽聽聽 "TexCloudBottom";
    聽聽聽聽聽聽聽聽聽聽聽 "DarkClouds02.jpg";
    聽聽聽聽聽聽聽 }
    聽聽聽聽聽聽聽 EffectParamFloats
    聽聽聽聽聽聽聽 {聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //EffectParamFloats錛屽嵆嫻偣鏁扮粍鍨嬪弬鏁板?/span>
    聽聽聽聽聽聽聽聽聽聽聽 "Brightness";聽聽聽聽聽聽 //鍙傛暟鍚嶇О
    聽聽聽聽聽聽聽聽聽聽聽 1;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //嫻偣鏁扮粍澶у皬
    聽聽聽聽聽聽聽聽聽聽聽 0.500000;聽聽聽聽聽聽聽聽聽聽 //鍊?
    聽聽聽聽聽聽聽 }
    聽聽聽 }
    }

    褰撴垜浠湪紼嬪簭涓皟鐢―3DXLoadMeshFromX()鎴朌3DXLoadMeshHierarchyFromX()鏃訛紝灝卞彲浠ラ氳繃鍏禠PD3DXBUFFER *ppEffectInstances鍙傛暟鏉ユ帴鏀跺埌緗戞牸鎵鐢ㄧ殑鎵鏈塃ffectInstance鐨勪俊鎭?/p>

    鍦ㄧ▼搴忎腑錛屽搴斾簬X鏂囦歡涓殑EffectInstance妯℃澘鍜孍ffectParam緋誨垪妯℃澘錛屾湁涓や釜緇撴瀯浣撶敤鏉ヤ唬琛‥ffect鏁版嵁錛?

    typedef struct _D3DXEFFECTINSTANCE
    { //EffectInstance
    聽聽聽 LPSTR pEffectFilename;聽//fx鏂囦歡鍚?/span>
    聽聽聽 DWORD NumDefaults; //鍙傛暟涓暟
    聽聽聽 LPD3DXEFFECTDEFAULT pDefaults; //鍙傛暟鏁扮粍
    } D3DXEFFECTINSTANCE, *LPD3DXEFFECTINSTANCE;

    typedef struct _D3DXEFFECTDEFAULT
    { //EffectDefault錛屽嵆EffectParam
    聽聽聽 LPSTR pParamName;聽聽聽聽聽聽聽聽聽聽 //鍙傛暟鍚?
    聽聽聽 D3DXEFFECTDEFAULTTYPE Type; //鍙傛暟綾誨瀷
    聽聽聽 DWORD NumBytes;聽聽聽聽聽聽聽聽聽聽聽聽 //鍙傛暟澶у皬錛屼互瀛楄妭璁?
    聽聽聽 LPVOID pValue;聽聽聽聽聽聽聽聽聽聽聽聽聽 //鎸囧悜鍙傛暟鐨勫肩殑鎸囬拡
    } D3DXEFFECTDEFAULT, *LPD3DXEFFECTDEFAULT;

    闇瑕佹敞鎰忕殑鏄紝浠庢枃浠朵腑寰楀埌鐨勫弬鏁扮被鍨嬪彧鏈変互涓嬪嚑縐嶏細
    typedef enum _D3DXEFFECTDEFAULTTYPE
    {
    聽聽聽 D3DXEDT_STRING = 1, //瀛楃涓?
    聽聽聽 D3DXEDT_FLOATS = 2, //嫻偣鏁扮粍
    聽聽聽 D3DXEDT_DWORD = 3,聽 //闀挎暣鍨?
    聽聽聽 D3DXEDT_FORCE_DWORD = 0x7fffffff //姝ゅ間笉浣跨敤
    } D3DXEFFECTDEFAULTTYPE;

    鍦ㄨ皟鐢ㄤ簡D3DXLoadMeshFromX()鍜孌3DXLoadMeshHierarchyFromX()涔嬪悗錛孹鏂囦歡涓殑鎵鏈塃ffect鏁版嵁淇℃伅灝變互涓婅堪緇撴瀯浣撶殑褰㈠紡鏀劇疆鍦╬pEffectInstances涓簡銆?鍙﹀錛屽湪浠?DS MAX瀵煎嚭鍙傛暟鍒癤鏂囦歡鏃訛紝瀵逛簬鏁村瀷鍜屾誕鐐規(guī)暟緇勫瀷鐨勫彉閲忥紝瀹冧滑鐨勫煎皢鐩存帴瀵煎嚭鍒癤鏂囦歡涓幓錛涜屽浜庢墍鏈夌殑綰圭悊璐村浘鏂囦歡鍙傛暟錛屽鍑虹殑浠呬粎鏄鏂囦歡鐨勬枃浠跺悕銆傛墍浠?鍦ㄧ▼搴忎腑闇瑕佸啀鏍規(guī)嵁榪欎簺鏂囦歡鍚嶆潵寤虹珛綰圭悊瀵硅薄銆?鍦ㄣ婇緳鐨勪紶璇淬嬩腑錛屾垜浠嬌鐢ㄤ竴涓嚜瀹氫箟鐨凜EffectInstance綾繪潵澶勭悊灝嗘枃浠跺悕杞崲涓虹汗鐞嗗璞$殑榪囩▼銆?涓鑸潵璇達紝寤虹珛涓涓畬鏁寸殑CEffectInstance鐨勮繃紼嬪涓嬶細

    鏍規(guī)嵁D3DXEFFECTINSTANCE緇撴瀯涓殑pEffectFilename瀛楃涓插鎵懼搴旂殑FX鏂囦歡;
    鏍規(guī)嵁璇X鏂囦歡寤虹珛ID3DXEffect錛屽茍灝嗘寚閽堜繚瀛樺湪CEffectInstance涓?
    鏍規(guī)嵁D3DXEFFECTINSTANCE緇撴瀯涓殑pDefaults璁劇疆CEffectInstance涓殑鍙傛暟淇℃伅錛毬?/p>


    瀵逛簬闀挎暣鍨嬪拰嫻偣鏁扮粍錛岀洿鎺ユ嫹璐濓紱聽
    瀵逛簬瀛楃涓詫紝棣栧厛璋冪敤ID3DXEffect鎺ュ彛涓殑GetParameterByName()鍜孏etParameterDesc()鏂規(guī)硶錛屽緱鍒拌鍙傛暟鐨勭被鍨嬶紱 鐒跺悗榪涗竴姝ュ垽鏂細


    濡傛灉紜疄鏄瓧絎︿覆鍙傛暟錛屽垯鐩存帴鎷瘋礉
    濡傛灉鏄汗鐞嗗弬鏁幫紝鍒欏皢璇ュ瓧絎︿覆浣滀負綰圭悊鏂囦歡鍚嶅緩绔嬬汗鐞嗗璞★紝騫跺皢鎸囬拡淇濆瓨鍦–EffectInstance涓?

    鑰屽湪鏈鏂版帹鍑虹殑DirectX 9 SDK Summer 2004涓紝閫氳繃ID3DXEffect::BeginParameterBlock()鍜孖D3DXEffect::EndParameterBlock()鏂規(guī)硶錛屾垜浠彲浠ュ皢Effect鍙傛暟璁劇疆榪囩▼緇熶竴緇戝畾鍒頒竴涓狿aramBlock鍙ユ焺涓娿傝繖鏍鳳紝鍦ㄨ皟鐢↖D3DXEffect::Begin()涔嬪墠灝卞彲浠ョ洿鎺ヤ嬌鐢↖D3DXEffect::ApplyParameterBlock()鏂規(guī)硶鏉ヨ緗墍鏈夎緇戝畾鐨勫弬鏁板箋備緥濡傦細

    [浠ュ墠鐨勫仛娉?/strong>]錛?

    鍦ㄨ鍙栧弬鏁版椂錛氳幏寰楁瘡涓涓弬鏁扮殑鍙ユ焺

    hParam1 = pEffect->GetParameterByName( NULL, "LightPos" );
    hParam2 = pEffect->GetParameterByName( NULL, "LightColor" );
    ...

    鍦ㄥ疄鏃剁粯鍒舵椂錛氬垎鍒緗瘡涓涓弬鏁?

    pEffect->SetValue( hParam1, value1 );
    pEffect->SetValue( hParam2, value2 );
    ...
    pEffect->Begin();
    // 緇樺埗
    ...

    [鍦―irectX 9 SDK Summer 2004涓殑鍋氭硶]錛?

    鍦ㄨ鍙栧弬鏁版椂錛氱粦瀹氭墍鏈夊弬鏁拌緗埌鍚屼竴鍙ユ焺

    hParam1 = pEffect->GetParameterByName( NULL, "LightPos" );
    hParam2 = pEffect->GetParameterByName( NULL, "LightColor" );
    ...
    pEffect->BeginParameterBlock(); // 寮濮嬬粦瀹?/span>
    pEffect->SetValue( hParam, value1 );
    pEffect->SetValue( hParam, value2 );
    ...
    hParamBlock = pEffect->EndParameterBlock(); // 緇撴潫緇戝畾錛岃繑鍥炲彞鏌?

    鍦ㄥ疄鏃剁粯鍒舵椂錛氱粺涓璁劇疆緇戝畾鍊?

    pEffect->ApplyParameterBlock( hParamBlock );
    pEffect->Begin;
    // 緇樺埗
    ...

    榪欐牱涓嶄粎綆鍖栦簡鍦ㄨ鍙栨椂瀵瑰弬鏁扮殑鍒嗘瀽榪囩▼錛岃屼笖鎻愰珮浜嗗疄闄呯粯鍒舵椂鍙傛暟璁劇疆榪囩▼鐨勬晥鐜囥?

    鎬葷粨

    浠ヤ笂灝辨槸涓浜涘浜庡湪DirectX 9.0涓Effect Framework鐨勪嬌鐢ㄧ殑綆瑕佷粙緇嶃傛諱箣錛屼嬌鐢‥ffect鏉ユ浛浠d互鍓嶇殑鏍囧噯鏉愯川鏄洰鍓嶅疄鏃跺浘褰㈤鍩熺殑鍙戝睍瓚嬪娍銆傞氳繃Effect Framework錛岀▼搴忓憳鍜岀編宸ュ彲浠ヤ負瀹炴椂涓夌淮紼嬪簭瀹炵幇澶氱澶氭牱鐨勬潗璐ㄦ晥鏋滃拰瑙嗚鏁堟灉銆?鐢變簬鍐呭瀹炲湪澶錛岄檺浜庣瘒騫咃紝鏈枃鍙槸瀵笶ffect Framework涓浉鍏蟲蹇電殑涓涓諱綋姒傛嫭鍜岀畝瑕佷粙緇嶏紝鎵浠ユ樉寰楁湁浜涙櫐娑┿傚湪浠ュ悗鐨勬枃绔犱腑錛屽皢鍒嗘壒瀵硅繖涓狥ramework浠ュ強鍦ㄥ叾涔嬩笂榪涜宸ヤ綔鐨勬祦紼嬭繘琛屾瘮杈冭緇嗙殑浠嬬粛銆?/p>

    ]]>
    銆愯漿璐淬戠洿鎺ヨ繍琛屽唴瀛樹腑鐨勭▼搴?/title><link>http://m.shnenglu.com/mybios/archive/2006/11/20/15452.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Mon, 20 Nov 2006 03:54:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2006/11/20/15452.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/15452.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2006/11/20/15452.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/15452.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/15452.html</trackback:ping><description><![CDATA[     鎽樿: 鍝堝搱錛屾兂涓嶅埌鏈変漢灞呯劧鎶婅繖縐嶄唬鐮佷篃鎼炲嚭鏉ヤ簡銆偮犅犅?Windows鐨凱E鍔犺澆鍣ㄥ湪鍚姩紼嬪簭鐨勬椂鍊欙紝浼氬皢紓佺洏涓婄殑鏂囦歡鍔犺澆鍒板唴瀛橈紝鐒跺悗鍋氬緢澶氭搷浣滐紝濡傚嚱鏁板鍏ヨ〃閲嶅畾浣嶏紝鍙橀噺棰勫鐞嗕箣綾葷殑銆傝繖浣嶄粊鍏勭瓑浜庢槸鑷繁鍐欎簡涓涓狿E鍔犺澆鍣ㄣ傜洿鎺ュ皢鍐呭瓨涓殑紼嬪簭鍚姩銆傝寰椾互鍓嶇殑鈥滅孩鑹蹭唬鐮佲濈梾姣掍篃鏈夌浉鍚岀殑鐗規(guī)с偮犅犅?鐩存帴鍚姩鍐呭瓨涓殑紼嬪簭鐩稿綋浜庡姞浜嗕竴涓3錛屽彲浠ユ妸紼嬪簭鍔犲瘑淇濆瓨錛岃繍琛屾椂瑙e瘑鍒板唴瀛橈紝鐒跺悗鍚姩錛屼笉榪囧浜庡鍔犵牬瑙i毦搴﹁繕瑕佺◢...  <a href='http://m.shnenglu.com/mybios/archive/2006/11/20/15452.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/mybios/aggbug/15452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2006-11-20 11:54 <a href="http://m.shnenglu.com/mybios/archive/2006/11/20/15452.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鎴戝埌浜嗘父鎴忓紑鍙戝涔犺糠鎯樻湡錛岃濡備綍鏄ソ錛?/title><link>http://m.shnenglu.com/mybios/archive/2006/11/20/15447.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Mon, 20 Nov 2006 01:46:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2006/11/20/15447.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/15447.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2006/11/20/15447.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/15447.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/15447.html</trackback:ping><description><![CDATA[聽聽聽聽聽聽聽 瀛︽父鎴忓紑鍙戝墠鍓嶅悗鍚庝篃鏈変袱涓槦鏈熶簡銆?br />聽聽聽聽聽聽聽 鍦ㄨ繖涓や釜鏄熸湡閲岋紝鏀惰幏鐢氬錛屼粠鏈鍑犳湰鐨勭粡鍏稿嚑浣曠煡璇嗗埌楂樼瓑鏁板銆佺嚎鎬т唬鏁伴兘鐪嬩簡涓閬嶏紝浠嶥irect3D鍏ラ棬鍒癝hader鐨勭紪鍐欎篃鐪嬩簡錛岀敋鑷寵繕瀛︿範浜哃UA鑴氭湰鐨勭紪鍐欏拰娓告垙寮曟搸鐨勬灦鏋勶紝BSP銆佸叓鍙夋爲絳夌瓑綆楁硶涔熺湅榪囦簡瑙d簡涓涓嬨?br />聽聽聽聽聽聽 聽瀛︾殑涓滆タ榪欎箞澶氾紝浣嗘槸鐪熸鑳芥帉鎻$殑鍙堟湁澶氬皯錛熻嚜宸辨棤娉曟巶閲忓晩錛岄偅涔堟帴涓嬪幓搴旇鍋氫粈涔堝ソ錛熷緢澶氫漢璇村簲璇ュ仛涓涓狣EMO錛岀敋鑷蟲湁浜鴻璇曠潃鑷繁鍋氫竴涓父鎴忓紩鎿庯紝榪樻湁浜鴻瑕佹垜璇曠潃鍋氫竴涓綉娓搞?br />聽聽 聽聽聽 聽紜疄錛岀幇鍦ㄥ簲璇ヤ粠瀹為檯鍑哄彂浜嗭紝瑕佸仛鐐逛笢瑗垮嚭鏉ユ墠鑳芥妸瀛﹁繃鐨勭煡璇嗙墷鍥烘帉鎻°備絾鏄紝鎴戠幇鍦ㄨ寰楀緢榪鋒儤錛屼笉鐭ラ亾鍋氫粈涔堝ソ錛屾垜鎵撶畻鏄ヨ妭榪囧悗鍘繪悶娓告垙寮鍙戯紝璇峰ぇ铏懼皬铏句滑閮界粰鐐規(guī)剰瑙佸浣曪紵<img src ="http://m.shnenglu.com/mybios/aggbug/15447.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2006-11-20 09:46 <a href="http://m.shnenglu.com/mybios/archive/2006/11/20/15447.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆愯漿璐淬慜gre鐨勫畼鍍氫富涔夋壒鍒?/title><link>http://m.shnenglu.com/mybios/archive/2006/11/19/15418.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Sun, 19 Nov 2006 00:40:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2006/11/19/15418.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/15418.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2006/11/19/15418.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/15418.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/15418.html</trackback:ping><description><![CDATA[ <div id="hvzpftn" class="postbody"> <p>Ogre鐨凪anager鐪熸槸澶氬晩,灝辮薄涓畼鍍氬叕鍙?騫蹭簨鐨勬病鍑犱釜,涓鍫嗙殑Manager,涓釜涓繕閮芥槸Singleton.璇磋嚜宸辨槸Singleton鍗村張public鏋勯犲嚱鏁?璁╀漢鏉ew瀹?鍦ㄧ1嬈¤new鐨勬椂鍊?鍋峰伔鍦板皢this璧嬬粰闈欐佹垚鍛榤s_Singleton,絎?嬈ew瀹冨氨瑕乤ssert鍠婂啢浜?褰撶劧榪欓兘鏄彨Singleton鐨勬ā鏉垮熀綾葷殑閭d釜鏋勯犲嚱鏁板共鐨?鍏稿瀷鐨勫皬浜鴻寰?瑙佷笉寰楀厜).Manager涓澶?鏈潵涓嶅鏉傜殑浜?涔熷彉寰楀鏉備簡.</p> <p>1.LogManager<br />a.鍏ㄥ眬鍗曚綋LogManager緇勫悎Log鎸囬拡Map闆嗗悎,鎺у埗鏈夊涓狶og瀵硅薄,1涓狶og瀵硅薄琛ㄨ揪瀵逛竴涓狶og鏂囦歡鐨勮緭鍏?鑰佷竴濂?.<br />b.鍚屾椂LogManager緇存姢1涓綋鍓嶉粯璁や富浜嬬殑Log瀵硅薄mDefaultLog,浠ュ睍鐜癓og瀵硅薄鍔熻兘鑰岄殣钘忚嚜宸卞疄闄呮槸涓狹anager鐨勮韓浠?閭鍔熻嚜璧?鍏跺績鍙瘺).<br />c.緇存姢涓涓洃鎺ц呮帴鍙ogListener鍒楄〃,浠ュ飽琛屼綔涓轟竴涓狹anager鍙楀閮ㄧ洃鐫g殑鑱岃矗(瀹炰負鎺ㄦ竻璐d換).</p> <p>2.DynLibManager<br />a.鍏ㄥ眬鍗曚綋DynLibManager緇勫悎DynLib*鎸囬拡Map闆嗗悎,鎺у埗澶氫釜DynLib瀵硅薄,1涓狣ynlib琛ㄨ揪瀵瑰姩鎬佸簱鐨勮杞藉拰鍗歌澆(鍏稿瀷鐨勫畼鍍氫富涔?浜烘誕浜庝簨,榪欑偣灞佷簨閮借鏈塎anager).</p> <p>3.ResourceGroupManager<br />聽 a.鍏ㄥ眬鍗曚綋ResourceGroupManager緇勫悎ResourceManager鎸囬拡Map顕?Manager鐨凪anager,闈?濂藉ぇ鐨勫畼)<br />聽 b.涓涓婁換灝卞畨鎻掍簡涓翰淇anager,寤虹珛涓彨General鐨凴esourceManager.</p> <p>4.SceneManagerEnumerator<br />聽 a.榪炲畠閮芥槸緋葷粺鍗曚綋,涓涓凱浠e櫒,灝忎漢寰楀織鍟?涓嶈浜?瀹冨彲綆$潃涓鍫哠ceneManager,鎯逛笉璧?<br />聽 b.涓寮濮嬪氨瀹夋帓浜嗕粈涔堜簨閮戒綔涓嶄簡鐨凷ceneManager(鍩虹被)浣滈粯璁ceneManager,澶т簨灝忎簨閮芥槸瀹?瀹ゅ唴瀹ゅ涓鎵嬪寘.</p> <p>5.涓鍫嗕腑灞傚共閮?涓鍫嗙殑MaterialManager,MeshManager,ParticleSystemManager,SkeletonManager......,閮芥槸Singleton,鏈夌殑榪樻槸ResourceManager鐨勯棬鐢?涓寮濮嬮兘騫蹭簡2浠朵簨.<br />a.瀹氬悕鍒?鍚慠esourceGroupManager娉ㄥ唽璇磋嚜宸辨槸鏌愭柟闈㈢殑Manager,_registerResourceManager.<br />b.瑕佽祫婧?鍚慠esourceGroupManager瑕佹眰鎺у埗瀵規(guī)煇縐嶈剼鏈殑瑙f瀽_registerScriptLoader(灝辨槸鐡滃垎璧勬簮).<br />c.鏈変釜OverlayManager,ArchiveManager鏈鐗?鎵嬩笅榪樻湁鍑犱釜宸ュ巶緇欏畠騫叉椿,鏃犻潪鏄嚜宸變綔涓嶄簡,鍙堟帹緇欎笅綰?</p> <p>6.涓鍫嗘彃浠跺鍔?寮濮嬪姞杞?榪欎簺澶栧姵鍒扮郴緇熶腑鏉ュ綋鐒惰娉ㄥ唽.</p> <p>7.閫忔槑瀹炰綋mTransparentObjects鎸墇搴忔帓搴?涓嶉忔槑瀹炰綋鎸塵aterial鍒嗙粍.</p> <p>8.鎴戜竴寮濮嬭涓篗aterail鏄釜寰堣仾鏄庣殑姒傚康,鍚庢潵鎵嶅彂鐜頒笂褰撳彈楠椾簡,瀹冪鐞嗕簡mTechniques鏁扮粍,鑰孴echniche綆$悊浜唌Passes鏁扮粍(Multipass render),鏈鍚庡疄璐ㄧ殑鍐呭鍦≒ass綾諱腑,Pass綾昏〃杈句簡涓涓覆鏌撶殑鐜.鐢變簬榪欎釜瀹樺儦緋葷粺瀹炲湪澶畼鍍?鎵浠ユ寜瀵硅薄姣忔娓叉煋鏄笉鍙帴鍙楃殑(璺ㄩ儴闂ㄥ悎浣滃お澶?鐩鎬簰鎵毊),娓叉煋鐘舵佸垏鎹㈤綣?鏁堢巼鏋佷綆,閫忔槑娓叉煋z搴忔販涔?鎵浠ラ渶瑕佹寜Materail鍒嗙粍鍜寊杞村垎搴?鑰孯enderSystem鐨勬渶閲嶈鏂規(guī)硶鎺ュ彈RenderOperation鍙傛暟.</p> <p>9.Pass鍜孯enderOperation鏄袱浣嶆渶鑳藉共鐨勫姵鍔ㄤ漢姘?閮芥槸鍙椾漢綆″埗鐨勫璞?鏁翠釜緋葷粺鐨勭伒欖傚拰鏍稿績,Pass灝佽浜嗘渶閲嶈鐨勬覆鏌撶姸鎬?鍗寵繘琛実lDrawXXX鏃剁綰挎墍澶勭殑鐘舵?鐫鑹茬郴緇?,RenderOperation灝佽浜嗗甫綰圭悊鍑犱綍娓叉煋鎿嶄綔(glDrawElements鍑犱綍緋葷粺),涓よ呮瀯鎴愪竴涓畬鏁寸殑娓叉煋.鍗?鍏?璋冪敤SceneManager鐨剆etPass(鍦ㄥ叾涓叾浠嶅皢璋冪敤RenderSystem浠ヨ緗綰跨姸鎬?,鍐?璋冪敤RenderSystem鐨刜render.</p> <p>10.SceneManager鐨勮櫄鏂規(guī)硶_findVisibleObjects鏄満鏅鐞嗙殑鏍稿績,鐢卞畠?yōu)畣Renderable鍒嗙粍,鍒嗛忔槑鍜屼笉閫忔槑鍒嗛佸叆涓嶅悓鐨勬覆鏌撻槦鍒?Renderable緇勫悎RenderOperation鍜孭ass(浣嗗嚭澶寸殑閮芥槸Materail),鐒跺悗SceneManager瀵逛箣鎺掑簭,鏁寸悊,閫佸叆RenderSystem娓叉煋.</p> <p>11.SceneManager鐨刜renderScene鏄熀鏈覆鏌撴牳蹇?瀹冨畬鎴愯嫢騫蹭換鍔?br />聽聽 a.甯у姩鐢婚┍鍔╛applySceneAnimations <br />聽聽 b.鍦烘櫙鍥炬洿鏂癬updateSceneGraph<br />聽聽 c.娓叉煋闃熷垪鏇存柊,_findVisibleObjects鏇存柊涓誨満鏅?_queueOverlaysForRendering鏇存柊涓婂眰涓葷晫闈?_queueSkiesForRendering鏇存柊澶╃┖鐩?鏈鍚巁renderVisibleObjects.</p> <p>12.娓叉煋闃熷垪RenderQueue,緇存姢std::map<RenderQueueGroupID, RenderQueueGroup*>瀵硅薄,浠ヨ〃杈懼叾鍐呴儴鐨勫涓柟闈?涓栫晫,鍓嶆櫙,鑳屾櫙)鐨勬覆鏌撳垎闃熷垪.RenderQueueGroup鍐嶅線涓嬪垎std::map<ushort, RenderPriorityGroup*, std::less<ushort> >,浠ヨ〃杈懼叾(濡傚墠鏅?鍐呴儴鎸塽short浼樺厛綰х淮鎶ゆ覆鏌撳垎闃熷垪.RenderPriorityGroup緇存姢涓涓猰TransparentPasses,鑻ュ共涓猄olidRenderablePassMap.</p> </div> <img src ="http://m.shnenglu.com/mybios/aggbug/15418.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2006-11-19 08:40 <a href="http://m.shnenglu.com/mybios/archive/2006/11/19/15418.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆愯漿璐淬戜嬌鐢ㄩ潪2嬈℃柟騫傜殑鍥懼儚綰圭悊鐨勯棶棰?/title><link>http://m.shnenglu.com/mybios/archive/2006/11/19/15417.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Sun, 19 Nov 2006 00:26:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2006/11/19/15417.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/15417.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2006/11/19/15417.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/15417.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/15417.html</trackback:ping><description><![CDATA[ <div id="hvzpftn" class="postbody"> <p>鍥懼儚浣跨敤2嬈℃柟鏄緢璁ㄥ帉鐨勯棶棰?涓嶅湪鎶鏈毦搴︿笂,鑰屽湪鎶鏈Ε鍗忎笂.瀹為檯涓婅姹傜編宸ヤ綔鍑?嬈℃柟綰圭悊,騫朵笖鏁村紶鍥劇殑絀洪棿鍒╃敤鐜囪楂?鏄緢闅劇殑.<br />褰撴湁浜涚瓥鍒掍涪榪囨潵濂囧鎬殑灝哄鐨勫浘鍍?鎴戦兘瑕佸悙琛,褰撶煡閬?n嬈℃柟闄愬埗鍚?浠栦滑鎶婂浘鍍忓昂瀵告墿澶т竴涓?鍐嶄涪緇欐垜絀轟綑澶ч噺絀虹櫧鐨?n嬈℃柟綰圭悊,鍐嶅悙琛.</p> <p>鐜葷拑娓h祫婧愰噷鏍囧噯鐨?n嬈℃柟浜虹墿綰圭悊,鍥懼儚鎸ょ殑婊℃弧鐨?姣忎釜韜綋閮ㄤ綅綰圭悊榪樻槸涓涓煩褰?鍒╃敤鐜囦箣楂樹笉寰椾笉浠や漢浣╂湇,鐒惰岃繖瀵圭編宸ヨ姹傛槸鏋侀珮鐨?<br />1024*768鐨勫浘鍍忔槸瑕佹媶鎴?*3鐨?56*256鍥懼儚鐨?鑰屼笉鏄竴鏁村ぇ寮犵汗鐞?鍥犱負768涓嶆槸2鐨刵嬈℃柟,鏇翠笉瑕佹墿澶т負1024*1024,鍔犲ぇ25%鐨勫唴瀛?<br />榪樻湁Wow閲孡oading鐣岄潰鐨勫浘鍍忛兘鍘嬫垚512*512,鍥犱負Loading鍥懼儚妯$硦涓鐐逛笉瑕佺揣,寰堢畝鍗曞嵈閮芥槸寰堥噸瑕佺殑緇嗚妭.<br />鎵浠ュ綋Wow榪愯鍦ㄦ垜Geforce2鐨勬樉鍗′笂鏃?鎴戣鐨勫緢cool.</p> <p>Nvidia鐨勯┍鍔ㄧ▼搴忎篃寰堣鍘?瀹為檯Geforce6鏄懼崱鎵嶆敮鎸乶on power of two texture,Geforce 5200綰х殑鏄懼崱,鍦ㄧ‖浠惰兘鍔涗笂涓嶈凍浠ユ敮鎸丯POT,浣嗘槸鏈鏂扮殑椹卞姩紼嬪簭浣跨敤浜嗚蔣浠舵ā寮忚繘琛屾ā鎷熸敮鎸?鑰岃蔣浠舵ā鎷熸牴鏈鏃犲疄鐢ㄤ環(huán)鍊?娓叉煋鍙樺緱瓚呯駭緙撴參,鍥犱負椹卞姩紼嬪簭姣忔綰圭悊娓叉煋閮戒細寰堣仾鏄庡湴鎶婇潪2嬈℃柟灝哄鍥懼儚鑷姩Scale鍒?嬈℃柟灝哄,瀵逛簬涓涓?00*600鐨勫浘鍍?椹卞姩紼嬪簭鍦ㄨ繖涓楠ゅ氨鍚冨厜浜咰PU.<br />鎵浠ユ繪湁浜涗漢鍠婄潃涓轟粈涔圤penGL娌℃湁杞歡娓叉煋鏀寔,DX寰堜綋璐撮兘鏈?瀹為檯涓奃X涔熸病鏈?姣斿閭d釜鎵璋撶殑8灞傜汗鐞?,鑰屾垜璁や負濡傛灉杞歡娓叉煋鑳借В鍐抽棶棰?閭h紜歡浣滀粈涔?涓嶈兘瑙e喅闂鐨勬柟妗堟垜浠敮鎸佸畠浣滀粈涔?</p> <p>// OpenGL鍔ㄦ佹墽琛?n嬈℃柟鍥懼儚闄愬埗<br />inline int next_p2(int a)<br />{<br />聽int rval=1;<br />聽while(rval<a) rval<<=1;<br />聽return rval;<br />}</p> <p>int nWidthPowerOfTwo = next_p2(tex.nWidth);<br />int nHeightPowerOfTwo = next_p2(tex.nHeight);</p> <p>if(tex.nWidth == nWidthPowerOfTwo聽 &&聽 tex.nHeight == nHeightPowerOfTwo)<br />{聽<br />聽glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, nWidthPowerOfTwo, nHeightPowerOfTwo, 0, ilGetInteger(IL_IMAGE_FORMAT), GL_UNSIGNED_BYTE, ilGetData());<br />聽tex.fScaleX = tex.fScaleY = 1.0f;<br />}聽<br />else<br />{聽<br />聽glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, nWidthPowerOfTwo, nHeightPowerOfTwo, 0, ilGetInteger(IL_IMAGE_FORMAT), GL_UNSIGNED_BYTE, NULL);<br />聽glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, tex.nWidth, tex.nHeight, ilGetInteger(IL_IMAGE_FORMAT), GL_UNSIGNED_BYTE, ilGetData());<br />聽tex.fScaleX = (float)tex.nWidth / (float)nWidthPowerOfTwo;<br />聽tex.fScaleY = (float)tex.nHeight/ (float)nHeightPowerOfTwo;<br />}<br /><br />鐒惰屽榪欎釜闂,姝g‘鐨勮В鍐蟲柟妗堟槸浜嬪厛瑙勫垝,寮哄埗鎵ц,be clever.</p> </div> <img src ="http://m.shnenglu.com/mybios/aggbug/15417.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2006-11-19 08:26 <a href="http://m.shnenglu.com/mybios/archive/2006/11/19/15417.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆愯漿璐淬戞暟鎹墦鍖呮牸寮?/title><link>http://m.shnenglu.com/mybios/archive/2006/11/19/15416.html</link><dc:creator>鏉庨敠淇?mybios)</dc:creator><author>鏉庨敠淇?mybios)</author><pubDate>Sun, 19 Nov 2006 00:17:00 GMT</pubDate><guid>http://m.shnenglu.com/mybios/archive/2006/11/19/15416.html</guid><wfw:comment>http://m.shnenglu.com/mybios/comments/15416.html</wfw:comment><comments>http://m.shnenglu.com/mybios/archive/2006/11/19/15416.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/mybios/comments/commentRss/15416.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/mybios/services/trackbacks/15416.html</trackback:ping><description><![CDATA[ <div align="left">銆銆娓告垙榪愯鍜屾樉紺虹殑閫熷害鍥虹劧閲嶈錛屼笉榪囨垜璁や負錛屽湪娓告垙涓彟澶栦竴涓熷害錛氭父鎴忚鍏ョ殑閫熷害涔熷悓鏍蜂笉鍙交瑙嗐傝瘯鎯充竴涓父鎴忥紝鍔ㄤ笉鍔ㄥ氨瑕佽鍏ユ暟鎹紝鑰屼笖姣忔瑁呭叆鐨勬椂闂撮兘浠や漢絳夊埌鈥滃績瓚婃潵瓚婃厡鈥濈殑鍦版錛屾垜鎯蟲亹鎬曚篃娌℃湁浠涔堜漢鎰挎剰鐜╀笅鍘葷殑銆?br /><br />銆銆閫夋嫨涓涓ソ鐨勬墦鍖呮暟鎹牸寮忥紝瀵逛簬緙栫▼浜哄憳鏉ヨ錛屾槸涓浠跺緢閲嶈鐨勪簨鎯呫備竴鑸潵璇達紝涓涓父鎴忕殑鏂囦歡涓暟澶錛屽茍涓嶆槸涓浠跺ソ浜嬫儏錛屼笉鍏夊崰鐢ㄧ殑紜洏絀洪棿澶э紝鑰屼笖涓ラ噸鐨勫獎鍝嶈鍏ラ熷害銆備笉榪囪繖鏍峰仛鐨勪紭鐐逛篃寰堟槑鏄撅細鍙互寰堣緇嗙殑鍒嗙被錛屽彲浠ュぇ澶х殑鍑忓皬緙栫▼浜哄憳鐨勫伐浣滈噺銆傚彟澶栦竴縐嶅仛娉曟槸錛屾妸鎵鏈夌殑鏁版嵁鍏ㄩ儴鏀懼湪涓涓枃浠墮噷闈紝榪欐牱鐨勫仛娉曞拰涓婇潰涓縐嶅仛娉曠殑浼樼己鐐規(guī)濂界浉鍙嶏紝瑁呭叆閫熷害姣旇緝蹇紙鍥犱負鍙鍋氫竴嬈℃枃浠舵墦寮鐨勬搷浣滐級錛屼絾鏄敱浜庢墍鏈夋暟鎹兘鏀懼湪涓璧鳳紝鏂囦歡鏁版嵁鐨勭粍緇囨瘮杈冨鏉傦紝瑕佹眰緙栫▼浜哄憳鑺辮垂澶ч噺鐨勭簿鍔涘幓瀹氫綅鏁版嵁鐨勬牸寮忓拰瀛樻斁浣嶇疆銆傚洜姝わ紝閫夋嫨涓涓悎閫傜殑鏁版嵁鎵撳寘鏍煎紡錛屽疄闄呬笂灝辨槸鍦ㄨ繖涓ょ鎯呭喌涔嬮棿閫夋嫨涓涓鉤琛$偣錛屼嬌瀹冩棦涓嶄細瀵規(guī)父鎴忕殑瑁呭叆閫熷害閫犳垚鏄庢樉鐨勫獎鍝嶏紝涔熶笉浼氱粰緙栫▼浜哄憳甯︽潵棰濆鐨勮礋鎷呫?br /><br />銆銆閭d箞錛屽浜庝竴涓父鎴忔潵璇達紝鏁版嵁搴旇鎬庝箞緇勭粐鍛紵鍏跺疄鐜板湪鏈夊緢澶氬ソ鐨勬父鎴忥紝鍙傝冧竴涓嬩粬浠殑鏁版嵁鏂囦歡灝變細鍙戠幇榪欎釜騫寵 鐐瑰叾瀹炲緢濂芥壘銆傜幇鍦ㄥぇ澶氭暟鐨勬父鎴忥紝鍩烘湰涓婃妸娓告垙闇瑕佺敤鍒扮殑鏁版嵁鍒嗛棬鍒被鐨勫瓨鏀撅紝姣忎竴綾繪暟鎹斁鍦ㄤ竴涓枃浠墮噷闈€傛瘮濡傝闊充箰鏀懼湪涓涓枃浠墮噷闈紝鍦板艦鍥劇礌鏀懼湪涓涓枃浠墮噷闈紝綺劇伒閫犲瀷銆佸姩鐢繪斁鍦ㄤ竴涓枃浠墮噷闈紝娓告垙闇瑕佺敤鍒扮殑鍥劇墖鏀懼湪涓涓枃浠墮噷闈紝浜虹墿鐨勫璇濄佷簨浠惰鏄庢斁鍦ㄤ竴涓枃浠墮噷闈⑩︹﹂偅涔堣繖浜涙暟鎹湪鏂囦歡閲岄潰鎬庝箞緇勭粐鍛紵<br /><br />銆銆榪樻槸涓鍙ヨ瘽錛氬垎闂ㄥ埆綾匯備笅闈互娓告垙鏈鍩烘湰鐨勫湴褰㈠浘绱犱負渚嬶紝璇存槑鏁版嵁鐨勭粍緇囧艦寮忋備竴鑸鏉ワ紝娓告垙鐨勫湴鍥劇敱寰堝澶уぇ灝忓皬鐨勨滃浘绱犫濈粍鎴愮殑錛岃繖浜涘浘绱犲垎涓哄嚑灞傦紝姣忎竴灞傜殑鍥劇礌鍩烘湰涓婂彲浠ョ畻浣滀竴綾伙細姣斿璇村湴闈㈠眰鍙互綆椾綔涓綾伙紝鍦頒笂灞傚彲浠ョ畻浣滀竴綾伙紝鐒跺悗澶╃┖灞傦紙鑳屾櫙灞傦級鍙互綆椾綔涓綾伙紝閮ㄩ槦銆佺墿鍝佸彲浠ョ畻浣滀竴綾匯傝屽湪鍦伴潰灞傞噷闈紝鍙堝彲浠ヨ繘涓姝ョ殑鍒嗙被錛屾瘮濡傝鍦板艦鏈夊北鍦幫紝娌欐紶錛岃崏鍘燂紝媯灄錛屾渤嫻侊紝嫻鋒磱鈥︹﹀湪娓告垙涓紝鏄彲浠ュ垎涓哄満鏅殑錛屼竴鑸殑鎯呭喌涓嬶紝姣忎釜鍦烘櫙鎵娑夊強鍒扮殑鍦板艦涓嶄細寰堝錛屾繪槸浠ユ煇涓綾誨吀鍨嬪湴琛屼負涓伙紝鐒跺悗鍔犲叆灝戦噺鍏朵粬鐨勫湴褰綔涓虹偣緙銆傞拡瀵硅繖縐嶆儏鍐碉紝鎴戜滑鍙互鎶婂悓涓綾葷殑鍦板艦榪炵畫鐨勬斁鍦ㄦ枃浠剁殑鏌愪竴涓綅緗紝榪欐牱鎴戜滑鍦ㄨ鍏ュ満鏅殑鏃跺欙紝鍙鍦ㄨ繖涓綅緗竴嬈¤鍙栬繖縐嶅湴褰㈢殑鏁版嵁灝卞彲浠ヤ簡銆備竴鑸父鎴忓湪鍒朵綔鐨勮繃紼嬩腑閮芥湁涓涓満鏅敓鎴愬櫒錛屾垨鑰呭彨浣滄嫐鍥懼櫒錛屽畠鐨勪綔鐢ㄥ氨鏄敓鎴愬湴鍥鋸斺旀垨鑰呰鐢熸垚鍦烘櫙銆傝繖涓嫐鍥懼櫒鍦ㄥ垵鏈熺殑鏃跺欒浜虹殑鏁版嵁鑲畾涓嶆槸宸茬粡鎵撳寘浜嗙殑錛屽洜涓虹編鏈繕瑕佸鍦板艦鐨勫熀鏈浘绱犺繘琛屾煇浜涗慨鏀廣?br /><br />銆銆鎵浠ユ垜璁や負錛屽ソ鐨勬暟鎹墦鍖呮牸寮忓簲璇ユ槸鍩轟簬鎷氬浘鍣ㄧ殑錛屼粬鎶婃瘡涓縐嶆暟鎹垎闂ㄥ埆綾葷殑榪炵畫瀛樻斁鍦ㄦ煇涓涓枃浠朵箣涓垨鑰呮枃浠剁殑鏌愪竴涓綅緗紝榪欐牱鑳藉澶уぇ鐨勫姞蹇▼搴忚鍙栨暟鎹殑閫熷害銆傝繖鏍峰嚑鑳藉浣挎父鎴忔枃浠剁湅璧鋒潵寰堢畝媧侊紝涔熶細澶уぇ鐨勬湁鍒╀簬紼嬪簭鐨勫紑鍙戙?br /></div> <img src ="http://m.shnenglu.com/mybios/aggbug/15416.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/mybios/" target="_blank">鏉庨敠淇?mybios)</a> 2006-11-19 08:17 <a href="http://m.shnenglu.com/mybios/archive/2006/11/19/15416.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://337791.com" target="_blank">亚洲日本中文字幕免费在线不卡</a>| <a href="http://www-878899.com" target="_blank">欧美激情在线</a>| <a href="http://lingshidu.com" target="_blank">久久久亚洲高清</a>| <a href="http://wwwhhh396.com" target="_blank">久久国产欧美日韩精品</a>| <a href="http://yichenep.com" target="_blank">久久精品国产视频</a>| <a href="http://mmpzyw.com" target="_blank">欧美成人视屏</a>| <a href="http://86311ib.com" target="_blank">亚洲人在线视频</a>| <a href="http://www672hh.com" target="_blank">一本久久综合</a>| <a href="http://aqdav037.com" target="_blank">午夜精品视频</a>| <a href="http://www48929.com" target="_blank">久久综合影音</a>| <a href="http://98tangav.com" target="_blank">欧美日韩中文另类</a>| <a href="http://lcqrsj.com" target="_blank">国产综合视频</a>| <a href="http://739191g.com" target="_blank">亚洲理伦电影</a>| <a href="http://avicpharm.com" target="_blank">欧美一区永久视频免费观看</a>| <a href="http://yjizzdizhigmail.com" target="_blank">久久琪琪电影院</a>| <a href="http://599107.com" target="_blank">日韩西西人体444www</a>| <a href="http://shght.com" target="_blank">久久国产精品72免费观看</a>| <a href="http://yw-95588.com" target="_blank">欧美成人tv</a>| <a href="http://6k7a.com" target="_blank">国产主播一区二区三区</a>| <a href="http://36seaa.com" target="_blank">一本大道久久a久久精二百</a>| <a href="http://227002.com" target="_blank">午夜日韩福利</a>| <a href="http://649929.com" target="_blank">欧美激情一区二区久久久</a>| <a href="http://cao3e8c8.com" target="_blank">亚洲一区二区三区国产</a>| <a href="http://689657.com" target="_blank">欧美xart系列高清</a>| <a href="http://jiarenlady.com" target="_blank">国产免费成人av</a>| <a href="http://8135777.com" target="_blank">一区二区日本视频</a>| <a href="http://gffffg.com" target="_blank">免费在线观看一区二区</a>| <a href="http://scptw.com" target="_blank">亚洲一区二区三区四区五区午夜</a>| <a href="http://www-yh6.com" target="_blank">久久久亚洲精品一区二区三区</a>| <a href="http://zuan3344.com" target="_blank">欧美日韩网址</a>| <a href="http://jx963.com" target="_blank">亚洲精品日韩一</a>| <a href="http://2061375.com" target="_blank">久久午夜羞羞影院免费观看</a>| <a href="http://xxxx48.com" target="_blank">99精品99久久久久久宅男</a>| <a href="http://8xxjj.com" target="_blank">美女视频黄a大片欧美</a>| <a href="http://qqkanp.com" target="_blank">国产亚洲欧美另类一区二区三区</a>| <a href="http://oimeal.com" target="_blank">宅男在线国产精品</a>| <a href="http://bocai01.com" target="_blank">亚洲国产高清aⅴ视频</a>| <a href="http://g2000vip.com" target="_blank">久久久xxx</a>| <a href="http://668527.com" target="_blank">国产在线欧美日韩</a>| <a href="http://aqd072.com" target="_blank">欧美在线精品一区</a>| <a href="http://www-772773.com" target="_blank">一本到12不卡视频在线dvd</a>| <a href="http://y8e8.com" target="_blank">免费成人黄色片</a>| <a href="http://1313js.com" target="_blank">狠狠干综合网</a>| <a href="http://126film.com" target="_blank">欧美自拍偷拍午夜视频</a>| <a href="http://bjjxgcsxy.com" target="_blank">亚洲一区二区三区高清</a>| <a href="http://www-tk8899.com" target="_blank">国产精品大全</a>| <a href="http://jiazhuangma.com" target="_blank">亚洲一区视频在线</a>| <a href="http://anxingou365.com" target="_blank">亚洲精品国产精品乱码不99按摩</a>| <a href="http://mes-dvd.com" target="_blank">亚洲欧美在线一区</a>| <a href="http://5917t.com" target="_blank">最新日韩欧美</a>| <a href="http://www92444.com" target="_blank">噜噜噜噜噜久久久久久91</a>| <a href="http://339505.com" target="_blank">狠狠色综合播放一区二区</a>| <a href="http://9993334.com" target="_blank">欧美在线一二三四区</a>| <a href="http://6k7a.com" target="_blank">亚洲无吗在线</a>| <a href="http://www227ee.com" target="_blank">国产精品入口</a>| <a href="http://qiruiwangluo.com" target="_blank">欧美亚洲尤物久久</a>| <a href="http://19zet.com" target="_blank">亚洲欧美日韩爽爽影院</a>| <a href="http://72966t.com" target="_blank">国产区二精品视</a>| <a href="http://www-tk8899.com" target="_blank">欧美一区二区三区在</a>| <a href="http://qqkanp.com" target="_blank">亚洲欧美在线免费</a>| <a href="http://488f.com" target="_blank">国内自拍一区</a>| <a href="http://hg4958.com" target="_blank">久久影视精品</a>| <a href="http://w3e8.com" target="_blank">欧美成人精品福利</a>| <a href="http://www330849.com" target="_blank">日韩亚洲欧美中文三级</a>| <a href="http://5gn4y.com" target="_blank">一区二区三区不卡视频在线观看</a>| <a href="http://xkm663y.com" target="_blank">欧美视频三区在线播放</a>| <a href="http://tp112.com" target="_blank">亚洲欧美制服另类日韩</a>| <a href="http://ehagakii.com" target="_blank">午夜亚洲伦理</a>| <a href="http://by777131.com" target="_blank">亚洲第一毛片</a>| <a href="http://yqr55.com" target="_blank">亚洲精品一区在线</a>| <a href="http://4bbbbb.com" target="_blank">国产精品福利片</a>| <a href="http://4008166177.com" target="_blank">久久精品99无色码中文字幕 </a>| <a href="http://ycpeixun.com" target="_blank">国产精品国产精品国产专区不蜜</a>| <a href="http://9y1111.com" target="_blank">亚洲一区二区综合</a>| <a href="http://xxxx43.com" target="_blank">午夜精品亚洲</a>| <a href="http://2ejj.com" target="_blank">亚洲国产毛片完整版</a>| <a href="http://1000kongbao.com" target="_blank">91久久线看在观草草青青</a>| <a href="http://www01614.com" target="_blank">欧美日韩国产一区精品一区</a>| <a href="http://56x6.com" target="_blank">欧美亚洲在线观看</a>| <a href="http://8xfore.com" target="_blank">久久亚洲影音av资源网</a>| <a href="http://8484vivo.com" target="_blank">一区二区成人精品</a>| <a href="http://16355t.com" target="_blank">欧美一二三视频</a>| <a href="http://www3344cao.com" target="_blank">亚洲人成人99网站</a>| <a href="http://kakatok.com" target="_blank">亚洲午夜久久久久久尤物</a>| <a href="http://yc0989.com" target="_blank">激情六月综合</a>| <a href="http://y9z8.com" target="_blank">99视频热这里只有精品免费</a>| <a href="http://www5566szy.com" target="_blank">国产精品午夜在线观看</a>| <a href="http://4hup23.com" target="_blank">欧美成人一区二区在线</a>| <a href="http://7213523.com" target="_blank">欧美午夜精品伦理</a>| <a href="http://mmpzyw.com" target="_blank">久久综合网hezyo</a>| <a href="http://zhengnuoxin.com" target="_blank">欧美日韩国产首页</a>| <a href="http://428368.com" target="_blank">久久乐国产精品</a>| <a href="http://ju5556.com" target="_blank">欧美另类69精品久久久久9999</a>| <a href="http://www-23918.com" target="_blank">亚洲一级网站</a>| <a href="http://baidijs.com" target="_blank">久热精品视频在线观看一区</a>| <a href="http://41818c.com" target="_blank">亚洲一区bb</a>| <a href="http://jxjx11.com" target="_blank">免费亚洲婷婷</a>| <a href="http://lingshidu.com" target="_blank">久久成人免费</a>| <a href="http://s0247.com" target="_blank">欧美日韩亚洲国产一区</a>| <a href="http://szjyf668.com" target="_blank">免费成人小视频</a>| <a href="http://1235656.com" target="_blank">国产精品一区=区</a>| <a href="http://shiyoudiban.com" target="_blank">亚洲黄网站黄</a>| <a href="http://mytopvogue.com" target="_blank">激情欧美一区二区三区</a>| <a href="http://poqsoft.com" target="_blank">一区二区免费在线视频</a>| <a href="http://772ss.com" target="_blank">亚洲欧洲一区二区三区在线观看</a>| <a href="http://www47011.com" target="_blank">亚洲一本视频</a>| <a href="http://china391.com" target="_blank">一区二区三区欧美成人</a>| <a href="http://caokk1.com" target="_blank">久久久一区二区三区</a>| <a href="http://hongzaixian.com" target="_blank">久久亚洲综合色一区二区三区</a>| <a href="http://sdjzzs.com" target="_blank">久久久久久婷</a>| <a href="http://zqx186.com" target="_blank">亚洲精品一区二区三区蜜桃久</a>| <a href="http://778877k.com" target="_blank">亚洲无线视频</a>| <a href="http://qcjpns.com" target="_blank">99在线|亚洲一区二区</a>| <a href="http://xshgwy.com" target="_blank">久久男人av资源网站</a>| <a href="http://hakuihoso.com" target="_blank">久久se精品一区精品二区</a>| <a href="http://pktether.com" target="_blank">欧美黑人国产人伦爽爽爽</a>| <a href="http://4322333.com" target="_blank">久久欧美中文字幕</a>| <a href="http://wy77777.com" target="_blank">国产日产欧美一区</a>| <a href="http://lukushe.com" target="_blank">亚洲午夜一区二区三区</a>| <a href="http://bodabloc.com" target="_blank">一本综合久久</a>| <a href="http://avsemm.com" target="_blank">欧美激情一区二区三区高清视频</a>| <a href="http://yjsp8888.com" target="_blank">巨乳诱惑日韩免费av</a>| <a href="http://huaihuaihuai.com" target="_blank">国产欧美精品日韩精品</a>| <a href="http://yiluee.com" target="_blank">亚洲视频国产视频</a>| <a href="http://wwwq4yy.com" target="_blank">亚洲一区免费看</a>| <a href="http://418ch.com" target="_blank">欧美午夜免费影院</a>| <a href="http://91pinping.com" target="_blank">av不卡免费看</a>| <a href="http://bjlaosha.com" target="_blank">亚洲视频一区二区免费在线观看</a>| <a href="http://montnove.com" target="_blank">欧美国产日韩一区</a>| <a href="http://www-tk3333.com" target="_blank">亚洲国产欧美一区</a>| <a href="http://5418002.com" target="_blank">亚洲人成高清</a>| <a href="http://hjk56.com" target="_blank">欧美激情按摩在线</a>| <a href="http://18cgh.com" target="_blank">亚洲美女免费精品视频在线观看</a>| <a href="http://qdssqt.com" target="_blank">亚洲精品日韩综合观看成人91</a>| <a href="http://022291.com" target="_blank">蜜臀av性久久久久蜜臀aⅴ</a>| <a href="http://www-49386.com" target="_blank">免费一级欧美片在线播放</a>| <a href="http://039658.com" target="_blank">1769国产精品</a>| <a href="http://428368.com" target="_blank">免费观看在线综合色</a>| <a href="http://aotaotao.com" target="_blank">亚洲国产精品99久久久久久久久</a>| <a href="http://bnb-gndc.com" target="_blank">亚洲黄色高清</a>| <a href="http://fc3332.com" target="_blank">欧美激情精品久久久六区热门</a>| <a href="http://syntheticnets.com" target="_blank">亚洲国产另类精品专区</a>| <a href="http://ycpeixun.com" target="_blank">一区二区三区波多野结衣在线观看</a>| <a href="http://874805.com" target="_blank">欧美精品七区</a>| <a href="http://www-06654.com" target="_blank">亚洲图片在线</a>| <a href="http://jzsp87.com" target="_blank">久久久久久久尹人综合网亚洲 </a>| <a href="http://www-964664.com" target="_blank">翔田千里一区二区</a>| <a href="http://cpddddcc.com" target="_blank">久久精品五月婷婷</a>| <a href="http://cuucs.com" target="_blank">在线免费观看欧美</a>| <a href="http://baluka-tw.com" target="_blank">欧美激情一区二区三区</a>| <a href="http://ooo789.com" target="_blank">亚洲精品影视在线观看</a>| <a href="http://zj-jufeng.com" target="_blank">亚洲欧美国产高清</a>| <a href="http://4466777.com" target="_blank">国产一区二区三区无遮挡</a>| <a href="http://tzhbsb.com" target="_blank">久久久精品一区</a>| <a href="http://www668889.com" target="_blank">亚洲大片在线</a>| <a href="http://021jjjflaw.com" target="_blank">亚洲免费综合</a>| <a href="http://xaxkizlar.com" target="_blank">一区二区三区中文在线观看</a>| <a href="http://337791.com" target="_blank">美日韩免费视频</a>| <a href="http://lorgou.com" target="_blank">中文欧美日韩</a>| <a href="http://5a07.com" target="_blank">美乳少妇欧美精品</a>| <a href="http://www94816.com" target="_blank">一区二区三区四区五区视频</a>| <a href="http://xiangshi888.com" target="_blank">国产精品毛片在线看</a>| <a href="http://638179.com" target="_blank">久久久精品久久久久</a>| <a href="http://xxxx43.com" target="_blank">亚洲精品一区二区三</a>| <a href="http://6688se.com" target="_blank">久久国产主播精品</a>| <a href="http://www66617.com" target="_blank">亚洲精品国产精品乱码不99按摩</a>| <a href="http://51-express.com" target="_blank">欧美日韩精品欧美日韩精品</a>| <a href="http://r6r4.com" target="_blank">校园春色国产精品</a>| <a href="http://www-116036.com" target="_blank">亚洲承认在线</a>| <a href="http://270909.com" target="_blank">久久不射中文字幕</a>| <a href="http://5s5s5s.com" target="_blank">黄色一区二区在线</a>| <a href="http://2016dp5330.com" target="_blank">欧美激情一二区</a>| <a href="http://chaoporn97.com" target="_blank">午夜一区不卡</a>| <a href="http://444yd.com" target="_blank">日韩一区二区福利</a>| <a href="http://aaa798.com" target="_blank">另类春色校园亚洲</a>| <a href="http://neudlac.com" target="_blank">亚洲免费在线</a>| <a href="http://vod3366.com" target="_blank">欧美一区二区在线观看</a>| <a href="http://8222666.com" target="_blank">国产精品成人国产乱一区</a>| <a href="http://8x27.com" target="_blank">久久精品一区二区</a>| <a href="http://678665.com" target="_blank">一本色道久久综合亚洲精品不 </a>| <a href="http://cao2014.com" target="_blank">国产在线精品二区</a>| <a href="http://a6a3.com" target="_blank">国产精品v日韩精品</a>| <a href="http://www-878009.com" target="_blank">久久午夜影视</a>| <a href="http://wewe520.com" target="_blank">亚洲欧美福利一区二区</a>| <a href="http://56qn.com" target="_blank">亚洲区一区二</a>| <a href="http://leohacks.com" target="_blank">免费亚洲电影在线观看</a>| <a href="http://taominze.com" target="_blank">欧美在线视频日韩</a>| <a href="http://6767673.com" target="_blank">亚洲视频精品</a>| <a href="http://436212.com" target="_blank">99re热精品</a>| <a href="http://syfeichi.com" target="_blank">亚洲国产岛国毛片在线</a>| <a href="http://0999555.com" target="_blank">国产欧美日韩亚洲一区二区三区</a>| <a href="http://www-787333.com" target="_blank">欧美精品粉嫩高潮一区二区 </a>| <a href="http://ktokt.com" target="_blank">久久久久久久久伊人</a>| <a href="http://543422.com" target="_blank">亚洲一区二区精品</a>| <a href="http://cytus2wiki.com" target="_blank">亚洲精品资源</a>| <a href="http://fjccjq.com" target="_blank">亚洲人成免费</a>| <a href="http://dailymailnepal.com" target="_blank">在线观看日韩一区</a>| <a href="http://by1473.com" target="_blank">激情欧美丁香</a>| <a href="http://zztto7.com" target="_blank">激情久久久久久久</a>| <a href="http://xdlot.com" target="_blank">激情欧美国产欧美</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>