2007年2月15日木曜日

昨日のプログラムはうまくいかなかった。何処が悪いのだろうか。

2007年2月14日水曜日

import式+SDL_imageで画像を埋め込む(仮)

SDLのSDL_RWFromMemとSDL_imageのIMG_Load_RW、そしてimport式を組み合わせれば画像を実行ファイルに埋め込み、表示させることが出来るはず。

import SDL, SDL_image;

ubyte[][] pictures;

void main()
{
    if(SDL_Init(SDL_INIT_VIDEO) < 0) {
        throw new Error("Couldn't initialize SDL.");
    }
    SDL_Surface* screen = SDL_SetVideoMode(640, 480, 0, SDL_SWSURFACE);
    if(screen == null) {
        throw new Error("Couldn't set 640x480 video mode");
    }
    pictures ~= cast(ubyte[])import("m59cl.png");
    SDL_Surface* image = IMG_Load_RW(SDL_RWFromMem(pictures[0].ptr, pictures[0].length * ubyte.sizeof), 1);
    SDL_BlitSurface(image, cast(SDL_Rect*)0, screen, cast(SDL_Rect*)0);
    bool done = false;
    SDL_Event e;
    while(!done) {
        while(SDL_PollEvent(&e)) {
            done = (e.type == SDL_QUIT);
        }
        SDL_Delay(1000/30);
    }
}

まだ試していない仮のコードです。実行できるかわかりません。

ソースコード表示プログラム

__FILE__を使えばソースコード自体を出力できる。

/* ソースコードを出力する */
import std.stdio;
void main()
{
    writef(__FILE__"\n%s", import(__FILE__));
}

コンパイルして実行すると、ファイル名とソースコードが出力される。

2007年2月13日火曜日

D言語のimport式を試す

DMD v1.005で実装されたimport式を試してみた。

/* hello.d */
import std.stdio;

int main(char[][] args)
{
    writef("%s", import("message.txt"));
    return 0;
}

message.txtは次のようにした。

Hello, D Programming Language.
D言語でimport式を使ってみた。
実行時にはこのファイル`message.txt'は必要としません。

コンパイル後、実行するとmessage.txtの内容が表示された。message.txtは、実行時には必要とされない。コンパイル時に実行ファイルに埋め込まれるからだ。WindowsでもLinuxでも同じようにデータを埋め込めるので良い。

2007年2月11日日曜日

BerylでFontforge等が半透明になる問題の解決

Berylウィンドウマネージャを使っているときにFontforgeを起動すると、ウィンドウが半透明になってしまう。Fontforgeの環境変数にXLIB_SKIP_ARGB_VISUALS=1を設定すれば直るのだが、いちいち指定して起動するのは面倒である。

Beryl 0.2.0なら、Berylの設定からウィンドウ管理の中の「様々な条件によってウィンドウの属性を設定します」で「ARGB ビジュアルを無効にする」にc:Fontforge:1を設定すれば良い。

画像:設定画面のスクリーンショット

2007年2月10日土曜日

BloggerをHTML lintでチェックしてみた。

まず、このブログをHTML lintでチェックしてみた。結果はボロボロ(-1774点)だった。

テンプレートでHTMLを編集できるようなので、後で正しくなるように挑戦しようと思う。

初投稿と目標(?)

とりあえず初投稿するM59。M59コンピュータ研究室の完成していないコンテンツを完成させることがとりあえずの目標です。

ブログ アーカイブ