• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 94, comments - 250, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            Nebula3 SDK 中的新東西

            Posted on 2008-12-14 21:52 Condor 閱讀(1800) 評(píng)論(0)  編輯 收藏 引用

            概述

            • 一些為了兼容Nebula2的代碼所做的修改, 主要是一些宏的名字受到影響(DeclareClass -> __DeclareClass, ImplementSingleton -> __ImplementSingleton etc...)
            • 著手刪除#ifndef/#define/#endif 這些防止重復(fù)include的宏, 因?yàn)閹缀跛械木幾g器(VStudio, GCC, Codewarrior) 都支持#pragma once 
            • 把同的樣Win32 和Xbox360 代碼移動(dòng)到一個(gè)共同的Win360 命名空間來消除代碼冗余
            • 加入了一個(gè)新的Toolkit層, 它包含了一些導(dǎo)出工具和輔助類
            • 加入和整理了一些 Doxygen(文檔) 頁面

            編譯系統(tǒng)

            • 重新組織了 VStudio解決方案的結(jié)構(gòu), 讓所有的依賴工程都在一個(gè)解決方案中, 這樣就不用再同時(shí)打開多個(gè)VStudio了
            • 現(xiàn)在可以通過.epk編譯腳本來導(dǎo)入VStudio工程(對(duì)于不在Nebula3 SDK目錄下的工程很有用)
            • 新的"projectinfo.xml" 文件為一些有用的導(dǎo)出工具定義了工程和平臺(tái)特有的屬性
            • 把 export.zip 檔案文件分割到一個(gè)獨(dú)立的平臺(tái)無關(guān)文件和幾個(gè)特定平臺(tái)的文件 (export.zip 包含所有平臺(tái)無關(guān)的文件, export_win32.zip, export_xbox360.zip, export_wii.zip 包含特定平臺(tái)的文件)
            • 加入一個(gè)統(tǒng)一的多平臺(tái)支持到 asset-pipeline (如 "msbuild /p:Platform=xbox360" 來生成XBOX360的東西)
            • 一個(gè)新的命令行生成工具 (有代碼):
              • audiobatcher3.exe (包裝了音頻導(dǎo)出)
              • texturebatcher3.exe (包裝了紋理導(dǎo)出)
              • shaderbatcher3.exe (包裝了 shader 編譯)
              • buildresdict.exe (生成資源詞典文件)
              • 這些工具大部分只是調(diào)用其它的生成工具(像xactbld3.exe, nvdxt.exe, 還有其它命令下的生成工具)
            • 注意公開的N3-SDK因?yàn)榉稍蛑话琖in32平臺(tái)的支持

            基礎(chǔ)層

            • 修正Core::RefCounted 和Util::Proxy 引用計(jì)數(shù)線程不安全的BUG
            • 加入 WeakPtr<> 類用于更好地處理環(huán)形引用
            • 在 Ptr<>中加入類型轉(zhuǎn)換的方法
            • 簡化System::ByteOrder 類接口
            • 加入平臺(tái)相關(guān)的面向任務(wù)的"virtual CPU core id" (如 MainThreadCode, RenderThreadCore, 等等...)
            • 加入一個(gè) System::SystemInfo 類
            • 加入 Threading::ThreadId 類型和 Threading::Thread::GetMyThreadId()靜態(tài)方法
            • 現(xiàn)在可以在VStudio調(diào)試器和其它的高度工具中看到線程的固有名稱了
            • SetThreadIdealProcessor() 現(xiàn)在用于在Win32平臺(tái)上把線程分配給可用CPU核心
            • 新的線程子系統(tǒng)的HTTP 調(diào)試頁面(現(xiàn)在只列出Nebula3的活動(dòng)線程)
            • MiniDump支持: 崩潰, n_assert()和 n_error() 現(xiàn)在在Win32平臺(tái)上會(huì)生成 MiniDump 文件
            • 新的 Debug 子系統(tǒng)用于代碼分析:
              • 提供 DebugTimer 和 DebugCounter 對(duì)象
              • HTTP 調(diào)試頁面允許在運(yùn)行時(shí)檢查DebugTimers和 DebugCounters
            • 新的Memory::MemoryPool 類來分配同樣大小的內(nèi)存塊(加快分配速度和減少內(nèi)存碎片)
            • Math::matrix44在中的一些新的和改名的方法
            • Http 子系統(tǒng)現(xiàn)在運(yùn)行在它自己的線程里
            • 把 SVG 支持加入到 Http 子系統(tǒng)(Http::SvgPageWriter 和Http::SvgLineChartWriter) (xoyojank:難道是Scalable Vector Graphics?這樣的話可以輸出圖表了)
            • 加入 IO::ExcelXMLReader 流讀取類, 允許讀取XML模式的MS Excel電子表格文件
            • 在Messaging::AsyncPort加入行為方式, 定義了處理線程怎樣去等待新的消息:
              • WaitForMessage: 在消息到達(dá)前一直阻塞
              • WaitForMessageOrTimeOut: 在消息到達(dá)或超時(shí)前一直阻塞
              • DoNotWait: 不等待消息
            • 加入 Remote 子系統(tǒng), 允許通過TCP/IP連接遠(yuǎn)程控制N3應(yīng)用程序

            渲染層

            • 把渲染移動(dòng)了它自己的線程 (InternalGraphics子系統(tǒng)在渲染線程這邊,  Graphics 前端子系統(tǒng)在主線程這邊)
            • 加入了 CoreAnimation 和 Animation 子系統(tǒng) (構(gòu)造中)
            • 為簡單的用戶界面加入了UI子系統(tǒng) (構(gòu)造中) (xoyojank: 這個(gè)不錯(cuò)^_^)
            • 加入CoreAudio和 Audio 子系統(tǒng)(構(gòu)造中):
              • CoreAudio 是后臺(tái)的, 運(yùn)行在自己的線程里
              • Audio 是前臺(tái)的"客戶端", 運(yùn)行在主線程里 (或者其它任何線程)
              • 圍繞XACT的概念設(shè)計(jì)
              • 提供 XACT 的包裝實(shí)現(xiàn)
            • 加入 CoreGraphics::TextRenderer 和 CoreGraphics::ShapeRenderer 類, 打算用于渲染調(diào)試信息
            • 加入調(diào)試渲染子系統(tǒng)(現(xiàn)在在Debug命名空間下)
            • Frame 子系統(tǒng): FramePostEffect 現(xiàn)也也許會(huì)包含 FrameBatch
            • Input 子系統(tǒng): 斷開 XInput 游戲手柄接口現(xiàn)在對(duì)于連接中的設(shè)備每隔0.5秒才檢測一次
            • Resources 子系統(tǒng): 加入 ResourceAllocator/ResourceLump 系統(tǒng)為Console平臺(tái)真正的資源流做準(zhǔn)備

            應(yīng)用層和插件:

            • 刪除了 CoreFeature (這東西不得不進(jìn)入GameApplication類來阻止雞生蛋問題)
            • 加入 NetworkFeature (構(gòu)造中)
            • 加入 UIFeature (構(gòu)造中)
            • 加入 CoreNetwork 和 Multiplayer 插件(RakNet的包裝)

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            大伊人青草狠狠久久| 中文字幕久久精品| 国产欧美一区二区久久| 国产欧美久久久精品| 国产午夜精品久久久久九九| 久久婷婷色香五月综合激情| 狠狠精品久久久无码中文字幕| 99久久国语露脸精品国产| 久久99精品国产麻豆婷婷| 久久综合亚洲欧美成人| 久久精品成人免费国产片小草| 久久99久国产麻精品66| 大香网伊人久久综合网2020| 国产激情久久久久久熟女老人| 国产精品99久久久久久猫咪| 欧美丰满熟妇BBB久久久| 国产精品日韩深夜福利久久| 色88久久久久高潮综合影院| 亚洲国产综合久久天堂| 亚洲乱亚洲乱淫久久| 久久精品毛片免费观看| 久久久久久精品久久久久| 国产精品伦理久久久久久| 久久99久久99精品免视看动漫| 女同久久| 精品久久国产一区二区三区香蕉| 欧美亚洲色综久久精品国产| 久久人人爽人人爽人人片av麻烦 | 99久久精品免费看国产一区二区三区 | 久久亚洲私人国产精品| 精品久久久久久无码免费| 99re这里只有精品热久久| 国产成人久久精品一区二区三区| 久久久久久免费一区二区三区| 久久丫精品国产亚洲av不卡| 伊人久久无码中文字幕| 国内精品伊人久久久久妇| 午夜精品久久久久成人| 亚洲精品国产第一综合99久久| 亚洲日本久久久午夜精品| 久久人人爽人人人人爽AV |