2013年10月24日木曜日

[cocos2d-x] 画面サイズ、ウインドウサイズについて

どうも、俺@昼休みです。

cocos2d-xでは画面の表示領域を取得するメソッドがいくつかありますが、
いつも混乱するのでまとめておきます。

・端末の解像度ごとのサイズを取得する(フレームサイズ)

// 幅
float width = CCEGLView::sharedOpenGLView()->getFrameSize().width;
// 高さ
float height = CCEGLView::sharedOpenGLView()->getFrameSize().height;
これで、実際の端末解像度の値が取得できます。
例えば縦型(ポートレイト)の場合、heightはそれぞれ、、
iPhone4S...960
iPhone5...1136
iPhone5S...1136
iPad(非retina)...1024
iPad(retina)...2048
となります。
Android端末の場合は、それぞれの端末ごとの解像度になります。


・setDesignResolutionSize()している時の表示サイズを取得する(ウインドウサイズ)

// 幅
float width = CCDirector::sharedDirector()->getWinSize().width;
// 高さ
float height = CCDirector::sharedDirector()->getWinSize().height;

// または
// 幅
float width = CCEGLView::sharedOpenGLView()->getDesignResolutionSize().width
// 高さ
float height = CCEGLView::sharedOpenGLView()->getDesignResolutionSize().height;
これで、解像度に合わせて画面サイズを設定している場合の幅、高さが取得できます。



以上でぇぇぇぇぇえす。

2013年10月21日月曜日

Linuxカーネルが32bitか64bitか、またCPUが64bit対応か32bit対応かを確認する

どうも、俺@帰る前です。

L7ロードバランサHaproxyを使う(その1 インストールまで)を書いてて、調べる機会があったのでまとめておきます。

・Linuxが32bitカーネルか64bitカーネルかを調べる

uname -a
Linux centos 2.6.18-238.9.1.el5 #1 SMP Tue Apr 12 18:10:13 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
のように、x84_64が出てくると64bitカーネルです。
32bitカーネルの場合は

uname -a
Linux centos 2.6.18.8-xenU #4 SMP Fri Sep 26 11:41:46 JST 2008 i686 unknown
のように、i686やi386が出ます。


・CPUが32bitアーキテクチャか64bitアーキテクチャかを調べる

cat /proc/cpuinfo | grep lm
flags           : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx lm up pni vmx cx16 popcnt lahf_lm
のように、flagsに「lm」が出てくれば64bitアーキテクチャ。
ちなみにlmは「ロングモード(x86_64)」の略のようです。
32bitのCPUでは「lm」が出てきません。

※参考「/proc/cpuinfo 再調査編 - ぴろにっき


以上でぇぇぇぇぇえす。

L7ロードバランサHaproxyを使う(その1 インストールまで)

どうも、俺@仕事中です。

今日はオープンソースのロードバランサの1つの「Haproxy」について紹介します。
L7なのでアプリケーション層レベルでのロードバランシングが可能です。
※httpのURLパラメータを見てアクセスするサーバを振り分ける、など可能です。
※もちろんL4で稼働させることも可能です。

開発環境はCentOS5.6(64bit)です。

2013.10.21時点での安定版の最新はv1.4.24です。
上記のURLからtarballを落としてからインストールします。


tar zxvf haproxy-1.4.24.tar.gz
cd haproxy-1.4.24
make TARGET=linux26 ARCH=x86_64
sudo make install
# make時のフラグは同梱されているREADMEに書いているので、参考に!

これでデフォルトの/usr/local以下にインストールされます。
インストール先などのオプションを指定するには、同梱されているMakefileを変更すればOKです。

次に起動スクリプトを/etc/init.d以下へ

cp examples/haproxy.init /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy
こうしておくことで
/sbin/service haproxy start
で起動したり出来ます。

つぎに設定ファイルです。

mkdir /etc/haproxy
cp examples/example.cfg /etc/haproxy/haproxy.cfg
すでにひな形があるので、それを元に設定できます。
設定については細かいオプションも用意されており、柔軟に設定可能です。

ちょっと長くなりそうなので、近いうちに"その2"書きます。

以上でぇぇぇぇぇえす。


※2013.11.07追記
L7ロードバランサHaproxyを使う(その2 設定から起動)書きました。