2015/12/10

升級 GCC 5.3.0

今天試升級 5.3

文件位置
https://gcc.gnu.org/gcc-5/

source code
svn co svn://gcc.gnu.org/svn/gcc/tags/gcc_5_3_0_release

下載位置(建議)
https://gcc.gnu.org/mirrors.html


解開後

執行 (需要開啟網路下載)
./contrib/download_prerequisites


設定(只支援c/c++)
./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

編譯 & 安裝
 make -j8 & make install

完成後, 重新開機

PS.
由於 GCC5的變更(https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html)
如果出現 std::__cxx11::string 或是
std::__cxx11::list 的錯誤
,編譯時需要加入參數  -D_GLIBCXX_USE_CXX11_ABI=0 來跟舊的 lib 相容

2012/01/11

買了一台無線分享台

TL-WR841ND 300Mbps 無線寬頻路由器 

☆IP-QoS頻寬管理功能,使用頻寬更有彈性

☆2T2R的MIMO無線規格,無線訊號更靈敏
☆支援WDS無線橋接,可與所有TP-Link產品相容
☆IEEE802.11N標準, 向下相容b/g規格
☆支援Upnp、PSP NDSL無線對戰
☆前置QSS按鍵,WPS加密一按就有
☆Atheros晶片獨有XSPAN技術,清楚收訊無死角
☆Wireless多媒體QoS內建 無線多重應用更順暢
☆繁體中文使用介面,內附繁體中文說明書
☆三年保固、半年內到府收送

價錢:900

由於預設的hinet小烏龜跟無線分享器的ip相衝,所以要重設無線分享線的ip,我是設成192.168.10.1,如果直接把網路線連到wan孔,也不能設定,要插在其他的網路孔上才可以。

2011/12/11

第一次買筆電

【筆電型號】--Asus A43SJ 紅
【 CPU 】--i5-2430
【 硬  碟 】--500G (7200轉)
【記 憶 體】--2G+4G(DDR3金士頓)
【顯 示 卡】--NVIDIA GeForce GT520M 1G 獨顯
【 電  池 】--6 cell
【購入價格】--20200

散熱墊、鍵盤保護膜、清潔組

100年資訊展的時候買,看了一下PTT的報價,最便宜可以買到19000,業務果然太會演戲了..orz


2011/04/06

MyGui實現動態載入,顯示描邊中文字

MyGui原本設定可以載入中文字,但是需要一次全部載入,會有一次全部載入過久的缺點。
於是我參考網路上MyGui3動態載入的文章,並參考TrueType2的範例(網路上有蠻多介紹這篇的文章)。

在實現功能時,example2的範例我算是全部搬入,只是套入MyGui的文字顯示介面。
實作上先宣告一個固定大小的材質,然後將字描繪在材質上,在取得字型時,取得字在材質上的範圍。
由於TrueType2的範例上,已經實作了直接描邊的文字,所以不需要在繪字時上下左右移動,中間再疊上一個字,這樣描出來的字邊不太好看,而且中間字的透明部份會壓在外框的字上,顯示不如直接用範例漂亮。


如果需要不描邊的中文字,網路上也可以找到相關的文章,使用上更是簡單,也有完整的範例。


下面的範例是使用微軟正黑體
image 
 使用方式:
(1)在MyGUI_Fonts.xml新增一個新的資源,我設定的如下

<Resource type="ResourceDynOLTrueTypeFont" name="OLMSJHFont.17">
    <Property key="Source" value="msjh.ttf"/>
    <Property key="Size" value="36"/>
    <Property key="Antialias" value="false"/>
    <Property key="SpaceWidth" value="4"/>
    <Property key="TabWidth" value="8"/>
    <Property key="CursorWidth" value="2"/>
    <Property key="Distance" value="6"/>
    <Property key="OffsetHeight" value="0"/>
    <Property key="OutlineColor" value="#000000"/>  <!-- 外框文字 -->
    <Property key="FontColor" value="#FFFFFF"/>     <!-- 文字顏色 –->
    <Property key="OutlineWidth" value="2"/>           <!-- 描邊的寬度 -->
</Resource>
(2)在MyGUI_FontManager.cpp註冊ResourceDynOLTrueTypeFont
FontManager::initialise()


(3)編輯介面時設定FontName為OLMSJHFont.17

已知問題:
程式實作時,當材質已滿時,會造成繪字無法顯示,目前並無實作這部份


分享我實作的程式,無詳細測試過是否有問題,歡迎下載指教:

2010/10/21

MyGUI使用DirectX不使用OSI編譯

MyGUI 是一款開源UI, 在OGRE中也經常使用,

目前的版本是3.0.1,使用的3rd-party libraries是FreeType 2.3.11版本。

兩個程式都下載後,在MyGUI目錄下建立\Dependencies\include

將freetype-2.3.11\include下的目錄複製進去,

將編譯後的freetype2311_D.lib(debug版本)複製到\Dependencies\debug\lib 目錄下

這樣前置作業已經完成。

一、建置MyGUIEngine

然後開啟\solution_directx\MYGUI.sln

尋找方案總管MyGUIEngine,按右鍵->屬性,組態屬性=>c/c++=>停用特用警告 填入 4819

因為開發者聽說是俄國人,所以編輯不太相同,把”檔案含有無法在目前字碼頁 (950) 中表示的字元。請以 Unicode 格式儲存檔案以防止資料遺失”錯誤訊息關閉不然編譯很久

再MyGUIEngine,按右鍵->僅專案->僅建置”MyGUIEngine”

二、建置MyGUI.DirectXPlatform

一樣停用警告 4819,然後編譯

三、編輯ImageSetViewer

停用警告 4819,

c/c++=>一般=>其他Include目錄=>最下面

..\..\..\Common\Input\OIS 改成 ..\..\..\Common\Input\Win32

c/c++=>前置處理器=>前置處理器定義=>MYGUI_SAMPLES_INPUT_OIS刪除(不一定必要)

連接器=>輸入=>其他相依性=>..\..\..\Dependencies\lib\debug\OIS_d.lib刪除

方案總管=>ImageSetViewer=>Base 移除

InputManager.h
InputManager.cpp
PointerManager.h
PointerManager.cpp

同個位置加入\MyGUI3.0\Common\Input\Win32\ 加入跟目錄上面檔名相同檔案

修改同目錄下的ResourceW32Pointer.cpp 在
#include "ResourceW32Pointer.h" 下加入

#if MYGUI_PLATFORM == MYGUI_PLATFORM_WIN32
# include
# include
#endif

以上,編譯

接下來的其他的 Demo或是 Tool 部份就相同修改,就可編譯了。