Linuxプログラミング
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
01/09/02 20:31ID:8eEfRqZ20403394
02/04/24 17:46ID:Y8k1KMwGC++の勉強のために実用を兼ねてコンソールのアプリを作ってみようと
思いまして.
>402 addstrって……たとえば,新規ウインドウが掛かる部分(の日本語
の2バイト目)を空白文字とかで潰しておくとか?
イメージ的には「日本語編集可能なテキストエディタで,画面のまん
中に『保存しますか? [Y/n]』みたいなダイアログを出す」ということ
を考えています.つまりどの位置に日本語が来るかは不定,と.ついで
に保存する文字/改行コードを指定するラジオボタンとかもあるといい
かなー.
あと,w3mでダイアログってありましたっけ?? [o]とかだと全画面
が切り替わってしまうので(実装的にはこのほうが楽)…….
0404394
02/04/24 18:00ID:Y8k1KMwGしこしこ書いていた……(menu.c).no mouseでコンパイルしてたので
気付かなかった(汗).
これ参考にしてみます.
0405400
02/04/24 21:08ID:ujxu+X0bたのむから、「レンダー拡張」とかいう「おれさま用語」をつかわんでくれ。
http://www.google.co.jp/search?q=%83%8C%83%93%83_%81%5B%8Ag%92%A3&hl=ja&lr=
どういう機能をいってるんだ?
0406login:Penguin
02/04/24 21:53ID:cUx0CTWkこれじゃないの!?
http://www.google.co.jp/search?hl=ja&q=render%8Ag%92%A3&lr=
0407400
02/04/24 22:30ID:ci3ObMz/あ、折れはてっきり399=401かと思ってた。
折れが「自前でどーにかしる!」っていったから、
「X Rendering Extentionでどーよ?」ってつっこんでくれたんだね。
さんくす。
# つーか、今までDRIと同じものかとおもってたよ... > RENDER拡張
# 逝ってくる...
0408400
02/04/24 23:27ID:jSngFYFKhttp://www.eax.com/render/
うーん、What is な文章は多いけど、HowToは少ないな...
0409暇潰し〜
02/04/25 00:37ID:+hViL74o* 連打測定ソフト:レンダ君
* 使い方: command time
* 10秒毎にラップタイムを表示します
* -lcursesつきでコンパイルして下さい
*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/time.h>
#include <curses.h>
#include <unistd.h>
static int wait_type(void);
int main(int ac, char **av)
{
int retval;
struct timeval now = {0, 0};
struct timeval start = {0, 0};
int c, i, t, rap;
int timelimit= atoi(av[1]);
int rapt=-1;
c=i=t=rap=0;
system("xset r off"); initscr(); cbreak(); noecho();
getch();
gettimeofday(&start, NULL);
mvprintw(1,0, "数:%d", ++i);
while (t != timelimit) {
retval = wait_type();
if(retval) { getch(); mvprintw(1,0, "数:%d", ++i); }
gettimeofday(&now, NULL);
c = (now.tv_usec >= start.tv_usec) ? 0 : -1;
t = now.tv_sec - start.tv_sec + c;
if (t % 10 == 0 && rapt != t && t) {
mvprintw(t/10+2, 0, "%d:rap %d", i, i-rap); rap=i; rapt=t;
}
mvprintw(0, 0, "time:%02d", t);
refresh();
}
if (t % 10 == 0 && rapt != t) mvprintw(t/10+2, 0, "%d:rap %d", i, i-rap);
mvprintw(0, 0, "time:%02d", t);
mvprintw(t/10+4, 0, "type 'q' to quit");
refresh();
while(getch() != 'q') ;
clear(); endwin(); system("xset r on"); exit(1);
}
static int wait_type(void)
{
fd_set rfds;
struct timeval tv = {0, 1000};
FD_ZERO (&rfds);
FD_SET (0, &rfds);
return select (1, &rfds, NULL, NULL, &tv);
}
0410いきなりsegfくらいましたが
02/04/25 00:45ID:Lc1Q/pwH(;-;)
でも、単純でもおもしろかったり(笑
0411login:Penguin
02/04/25 13:09ID:N7r3K3Uc0412login:Penguin
02/04/25 14:05ID:1gvkucKX最後system("xset r on"); で終了時にonになります.
これは指の筋肉増強の為に作りました.
昔のシュウォッチみたいなもんですね.
0413login:Penguin
02/04/25 18:50ID:N7r3K3Ucあれ?cygwinだからかな?キーリピートきいてるの。。
0415VackerVT_DEFAULT_TAG_STRING
02/05/01 09:48ID:SXVBzGFf所で割き程、エロ画像を見るためのtclプログラム。なずけて
"エロエクスプローラ"と言うものを作って見た。
君達、tclもイケルゼ。
ここからダウンロードしたら、
http://cgi.din.or.jp/~behemoth/cgi-bin/img-box/img20020501094024.tar
名前をeexplorer.tar.gz にかえて、
tar -xvzf eexplorer.tar.gz
とやって、wish ero.tclだかんな。
0416login:Penguin
02/05/01 10:07ID:KFBqztXKおもろいね。
0417Vacker
02/05/02 05:49ID:t8zab81Kまずは、wishと打って、tclのインタプリタを起動しよう。
そうしたら、
text .tx0
と入力してtextウイジットを作ろうぜ。
まあ、ウイジットって言うよりはWindows的に言えばオブジェクト
って呼んでもいいな。
オブジェクトが出来たら、wishが作ったウインドウに張り付け
鳴きゃ行けないよな。そこで、
pack .tx0
とするのさ。どうだい、簡単にエヂターが作れただろ?
0418Vacker
02/05/02 05:50ID:t8zab81Kを押せば入力できるはずさ。[Ctrl]+[o]でoffになる。
この辺りはmuleとおんなじさ。
0419login:Penguin
02/05/28 13:25ID:9EabqzpYSA_SHIRQを指定した場合、同じIRQを共有するドライバは
全てSA_INTERRUPT付きか全てSA_INTERRUPT無しでないといかんと
ゆーよーな話を小耳に挟んだんですが、何かまずい事情があるんでしょうか?
メーカー製のドライバを入れたらエラーでまくりでまともに動作しなかったので
いろいろ調べてみたらSA_INTERRUPT付きと無しのドライバが混じって
同じIRQを共有していたんで。
混ぜたらrequest_irq()が失敗してもよさそうなもんなのに
しっかり成功してのも謎です(kernel 2.2.20)。
0420login:Penguin
02/05/28 14:03ID:HcFeu/kp俺もあまり詳しくはないけど、そのあたりは 2.0->2.2 で変わったyo。
SA_INTERRUPT はハンドラ走行中に割込み禁止するフラグだから、
IRQ の共有とは直接は関係ないんじゃないか?
arch/i386/kernel/irq.c あたりを読んでみればすっきりすると思われ。
0421login:Penguin
02/06/01 19:01ID:GchLRA1jたとえば「ファイル名を変更する」時に行入力を使う場合、
元のファイル名を指定できなければならないんですが……
できればLGPLがいいなぁ
0422login:Penguin
02/06/01 20:01ID:3AZ8uYf00423login:Penguin
02/06/01 22:54ID:1Mas3Mij俺はformライブラリを使った。
多分もっと良い方法もありそうだが、
そこは俺がへたれという事で…
0424421
02/06/02 01:05ID:uSBPGDj60425login:Penguin
02/06/03 20:26ID:pNev0Yh6言語は、Cです。できればLinuxだけではなくて、FreeBSDなどにも対応させたいのですが、
どうやったらいいでしょうか?
#ifdefでスイッチさせることはできるのでしょうか?
0426login:Penguin
02/06/03 23:04ID:cBxac/cnGNU のソース何でも良いから見てみ。
#ifdef 使わなくても、共通ライブラリだけで作れるコードなら
余裕でコンパイル可能。
0427login:Penguin
02/06/17 02:03ID:4QW9IVdBgetenvしようとしたけどNULL返ってくるんですけど。
0428login:Penguin
02/06/20 01:23ID:CphBQpNt0429login:Penguin
02/06/20 01:31ID:PT5TL4d2IFSは、普通は環境変数じゃなくてShell変数。
だから、あらかじめ明示的にexportしてやらないとダメじゃないかな?
0430427
02/06/20 01:41ID:CphBQpNtshell変数は参照できないんですか…
ありがとうございました。
0431login:Penguin
02/06/20 01:51ID:PT5TL4d2shell変数は、shellが個別に内部で持っている変数。
環境変数とはちがうYo!。
どうしても必要なら、export IFSしてから自作プログラムを
execするshell scriptを使えばいいと思う。
04321113
02/06/28 15:53ID:SCOUjbnn0433login:Penguin
02/06/28 22:14ID:l/6ZxngJほれ、単純だけど、ちゃんと機能するcatだ。
#include <stdio.h>
void print_usage(char *me)
{
fprintf(stderr,"Usage: %s filename\n",me);
return;
}
int main(int argc, char **argv)
{
FILE *fp;
char buf[1024];
int i;
if(argc < 2){
print_usage(argv[0]);
exit(1);
}
for(i=1;i<argc;i++){
fp = fopen(argv[i],"r");
if(fp == NULL){
perror(argv[i]);
exit(1);
}
while(fgets(buf,1024,fp)){
fputs(buf,stdout);
}
fclose(fp);
}
return 0;
}
0434login:Penguin
02/06/29 11:55ID:wHqTASTHずれなくするオナジナイやるから、おまいらも、なにかソースうぷしる!!
#!/usr/bin/env ruby
require 'jcode'
$KODE='e'
while gets do
a = $_.gsub(" "," ")
puts a.gsub("\t"," ")
end
0435login:Penguin
02/06/30 22:19ID:ljPApLVf0436login:Penguin
02/07/01 08:34ID:Rzg2qQoAdelete ip; //(;´Д`)ハァハァ
0437login:Penguin
02/07/01 13:08ID:E87x/HNo0438login:Penguin
02/07/01 15:45ID:PPG3DaVN0439login:Penguin
02/07/01 19:36ID:bBNoWQJCdelete[] ip; //(;´Д`)ハァハァ
0440login:Penguin
02/07/03 22:09ID:sv4PfTDc0441login:Penguin
02/07/03 23:31ID:8md+2mdCint *ip = new int(0);
delete[] ip;
}//(;´Д`)ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
0442login:Penguin
02/07/04 01:20ID:gZhxNmSFcout<<"Jesu joy of man's desire(・∀・)"<<endl;
} while (false);
0443login:Penguin
02/07/04 02:48ID:YpwuZxrO0444login:Penguin
02/07/05 12:25ID:19Dq7F42ふつーのserialじゃだめなのか?
0445login:Penguin
02/07/05 21:03ID:AzdKDIXl>>443
どーゆーエラーが出たのか書かんと...
0446login:Penguin
02/07/05 21:26ID:WoeIQI0fインストールしないと動かないだろ。
たまに動くモジュールもあるけど。
0447OpenGLのテスト
02/07/05 21:44ID:bgFWMrqb#include <sys/time.h>
#include <stdlib.h>
#define QX 0.0 /* 球の初期位置のx座標値 */
#define QY 1.5 /* 球の初期位置のy座標値 */
#define QZ (-5.0) /* 球の初期位置のz座標値 */
#define G (-9.8) /* 重力加速度 */
#define V 25.0 /* 初速度 */
#define TSTEP 0.01 /* フレームごとの時間 */
struct timeval tv_now;
struct timeval tv_start; /* 開始時間 */
int nstep=0;
/*
* 地面を描く
*/
void myGround(double height)
{
static GLfloat ground[][4] = {
{ 0.6, 0.6, 0.6, 1.0 },
0448OpenGLのテスト
02/07/05 21:45ID:bgFWMrqb};
int i, j;
glBegin(GL_QUADS);
glNormal3d(0.0, 1.0, 0.0); /* 法線ベクトルの設定 */
/* 10x10 の床 */
for (j = -5; j < 5; j++) {
for (i = -5; i < 5; i++) {
glMaterialfv(GL_FRONT, GL_DIFFUSE, ground[(i + j) & 1]);
/* タイル描画(1つ分) */
glVertex3d((GLdouble)i, height, (GLdouble)j);
glVertex3d((GLdouble)i, height, (GLdouble)(j + 1));
glVertex3d((GLdouble)(i + 1), height, (GLdouble)(j + 1));
glVertex3d((GLdouble)(i + 1), height, (GLdouble)j);
}
}
glEnd();
}
/*
* 画面表示
0449OpenGLのテスト
02/07/05 21:46ID:bgFWMrqbvoid display(void)
{
static GLfloat white[] = { 0.8, 0.8, 0.8, 1.0 }; /* 球の色 */
static GLfloat lightpos[] = { 3.0, 4.0, 5.0, 1.0 }; /* 光源の位置 */
static double px = QX, py = QY, pz = QZ; /* 球の位置 */
/* 画面クリア */
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
/* モデルビュー変換行列の初期化 */
glLoadIdentity();
/* 光源の位置を設定 */
glLightfv(GL_LIGHT0, GL_POSITION, lightpos);
/* 視点の移動(物体の方を奥に移す)*/
glTranslated(0.0, -QY, -10.0);
/* シーンの描画 */
myGround(0.0); /* 高さは0 */
0450OpenGLのテスト
02/07/05 21:47ID:bgFWMrqbglTranslated(px, py, pz); /* px, py, pz に移動 */
glMaterialfv(GL_FRONT, GL_DIFFUSE, white);/* 拡散反射光強度の設定 */
glutSolidSphere(0.1, 16, 8); /* 球体 */
glutSwapBuffers();
pz = QZ + V*nstep*TSTEP;
printf("%f\n", pz);
}
void resize(int w, int h)
{
/* ウィンドウ全体をビューポートにする */
glViewport(0, 0, w, h);
/* 透視変換行列の指定 */
glMatrixMode(GL_PROJECTION);
/* 透視変換行列の初期化 */
glLoadIdentity();
gluPerspective(30.0, (double)w / (double)h, 1.0, 100.0);
0451OpenGLのテスト
02/07/05 21:47ID:bgFWMrqb/* モデルビュー変換行列の指定 */
glMatrixMode(GL_MODELVIEW);
}
void mouse(int button, int state, int x, int y)
{
switch (button) {
case GLUT_LEFT_BUTTON:
if (state == GLUT_UP) {
/* 時刻調査 */
for (;;) {
gettimeofday(&tv_now, NULL);
if ((tv_now.tv_sec - tv_start.tv_sec)
+ (tv_now.tv_usec - tv_start.tv_usec)/1000000
>nstep*TSTEP) {
display();
nstep++;
}
if (nstep == 500){nstep=0;break;}
}
}
break;
0452OpenGLのテスト
02/07/05 21:48ID:bgFWMrqbbreak;
}
}
void keyboard(unsigned char key, int x, int y)
{
/* ESC か q をタイプしたら終了 */
if (key == '\033' || key == 'q') {
exit(0);
}
}
void init(void)
{
/* 初期設定 */
glClearColor(1.0, 1.0, 1.0, 0.0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
}
0453OpenGLのテスト
02/07/05 21:48ID:bgFWMrqbint main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glutReshapeFunc(resize);
glutMouseFunc(mouse);
glutKeyboardFunc(keyboard);
init();
glutMainLoop();
return 0;
}
0454OpenGoLua
02/07/05 21:51ID:bgFWMrqbコンパイルは
gcc -o gltest gltest.c -L/usr/X11R6/lib -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm
などとやって下さい。
0455login:Penguin
02/07/05 22:48ID:dC/skGRi0456login:Penguin
02/07/05 23:18ID:7jOR47Ou検索したところ、下の 3種類の本が見つかったのですが、
もっておられる方、書評をお聞かせいただけないでしょうか。
プログラミング Linux(アスキー)
http://www.linux.or.jp/bookreview/ProgrammingLinux.html
Linux プログラミング 例題で学ぶUNIXプログラミング環境のすべて(ソフトバンク)
http://www.linux.or.jp/bookreview/LinuxProgramming.html
例題で学ぶLinuxプログラミング GCCからRPMまでオープンソース・アプリケーション技術(ピアソン・エデュケーション)
http://www.ne.jp/asahi/yokohama/juk/LPBE/
上2つのブックレビューを見た感じでは、ソフトバンクの方が良いように思ったのですが…
できればなるべく易しいものが良いかな、と思っています。
0457login:Penguin
02/07/05 23:31ID:/Fjz3ZWL0458login:Penguin
02/07/05 23:54ID:1Jx6LzB6とりあえず、ソフトバンクので困らないと思われ。
むずかしさは...まぁ、上二つはあまり変わらん。下は持っていない。
でも、ピアソンのが新しいっちゃ新しいよね。
あとは、ぼんやりとでもいいから、何か作りたいものをイメージ
しながら読むといいと思う。
「これはあんなとこにつかえそぉ」とか、具体的に読み進められる。
>>454
お疲れ〜。でも、うちにはOpenGL環境ないんです(w
0459login:Penguin
02/07/05 23:56ID:qXJ160Nx本もいいけど、他人の書いたコードを読むのも勉強になるよ。
0460login:Penguin
02/07/06 00:20ID:LbUe5eHh御意,,と、口ばかりじゃアレなんで、454のソース読んでみたよ。
で、気づいたこと。
mouse()の中でfor(;;){ if(){break;}}使ってるけど、
do{}while();の方が、意味的にもいいよね。
あと、そもそもこれちゃんと動かんだろ?
tv_startは初期化されていないし、
(tv_now.tv_usec - tv_start.tv_usec)/1000000とかやっても、
0しか戻らないし...
0461login:Penguin
02/07/06 00:22ID:LbUe5eHhとはいえ、for(;;)のビジーループが存在するだけで許せんぞ。
0462login:Penguin
02/07/06 02:38ID:xjNRRpHFあぁ、そこらへんは適当だよ。とりあえず動くという程度のプログラムだから。
白黒のタイルに浮かんでるボールがこっちに向かってくるプログラムだよ。
0463login:Penguin
02/07/06 03:02ID:LbUe5eHhつーか、適当に書くとビジーループになるのが信じられん。
適当に書くときはusleep()使えよ。数倍楽だろ。
0464login:Penguin
02/07/06 04:00ID:llRDQuK04芯のなら大丈夫だと思うけど、2芯のだとダメくない?
0465login:Penguin
02/07/06 16:12ID:XQZfZLNG0466login:Penguin
02/07/06 19:22ID:llRDQuK0Samba経由で秀丸です
0467login:Penguin
02/07/08 03:53ID:r8k7FnUxstd::time(&t);
cout<<"date: "<<std::ctime(&t)<<endl;
0468login:Penguin
02/07/09 07:44ID:dI8y656hはぁ、鬱。
0469login:Penguin
02/07/09 08:14ID:VxwP6xXlふつーメモ帳だ
0470login:Penguin
02/07/10 23:09ID:Umbonmarこういう風に、物理シミュレーションとして
速度 += 加速度 * 時間
ってやっちゃうと、誤差が蓄積していく。
だから、あらかじめ毎回全エネルギーを計算しておいて、
毎回 全エネルギーから位置エネルギーをさっぴいて、
運動エネルギーを出して現在速度を算出、
また、位置エネルギから加速度を計算して、現在速度に
加速度*ステップ時間を加え、次の位置を計算して、
次回フレームの位置をだす。
で、新しい位置での位置エネルギーを計算して、全エネルギーから
さっぴいて運動エネルギーを...
ってやれば、一応発散も収束もしない定常的な運動が実現できるはず。
0471login:Penguin
02/07/10 23:24ID:wVIFNohY0472login:Penguin
02/07/10 23:30ID:Umbonmar0473login:Penguin
02/07/10 23:39ID:RWp71i45こないだあるツールを最初シェルスクリプトで書いたですよ。
sed を百回くらい呼び出すお化けになったですよ。死ぬ程遅い。
次に妥協して bash 固有機能を使ったら 10 倍くらい改善した。
それを perl で書き直したら更に 5 倍速くなったよ。
しかも断然書きやすい。すごくよみにくいけど。
0474login:Penguin
02/07/10 23:48ID:Umbonmarちなみに、
http://pc.2ch.net/test/read.cgi/linux/1025048946/96-103
だと、常に重力加速度がモロに働いている状況だから、
運動エネルギーはずーっと増大する一方です。
/* 根本的に、力と加速度/速度の関係がおかしぃように見える... */
0475ばねばね
02/07/11 03:45ID:bhGnPQRzエネルギーが保存されてる状態ならそれで行けるかな。
エネルギーが時間の関数でエネルギー自体を差分で求めていく事になると
やっぱり速度を求める時に誤差が出そうな気が。。
まだ組んだ訳では無いので何とも言えませんが。
さっき改めてsodaplayやってみたら、
○ばねの振動は減衰する(現実に則してる)
○地面のはねかえり係数は1未満(上に同じ)
○筋肉の存在(減衰の無いばね?)(生物チックな動きの元)
と言うことが分かりました。ますますややこしい。。
とりあえず簡単な質点の運動から考えてみます。(ばね系はちょっと後回しで)
0476ばねばね
02/07/12 03:22ID:pljjbWtA{
static struct timeval oldt = {-1, -1}; /* old time */
static struct timeval nowt; /* new time */
int i;
glClear(GL_COLOR_BUFFER_BIT);
glColor3d(0.0, 0.0, 1.0);
switch (g_Mode.mode) { /* ステータス表示 */
case SIMULATE: sd_mvAddStr(5, 30, "mode:SIMULATE"); break;
case CONSTRUCT: sd_mvAddStr(5, 30, "mode:CONSTRUCT"); break;
default: sd_mvAddStr(5, 30, "mode:"); break;
}
if (g_Mode.mode == SIMULATE) { /* シミュレーションモード */
if (oldt.tv_sec == -1) {
gettimeofday(&oldt, NULL);
for (i=0; i< g_nmass; i++)
g_Masslist[i].a[1] = -G;
} else {
gettimeofday(&nowt, NULL);
if (sub_timeval(nowt, oldt) > STEP_TIME) {
for (i=0; i< g_nmass; i++) {
if (g_Masslist[i].x[1]<0 && g_Masslist[i].v[1]<0)
g_Masslist[i].v[1] = -g_Masslist[i].v[1]*e;
else {
g_Masslist[i].x[1] += g_Masslist[i].v[1]*STEP_TIME;
g_Masslist[i].v[1] += g_Masslist[i].a[1]*STEP_TIME;
}
}
oldt=nowt;
}
}
}
if (g_Mode.mode == CONSTRUCT) oldt.tv_sec = -1; /* initialize old time */
if (g_nmass > 1) { /* 記録したデータで線を描く */
glColor3d(0.0, 0.0, 0.0);
for (i=0; i< g_nmass; i++)
sd_mvDispTrianglePoint(g_Masslist[i].x[0], g_Masslist[i].x[1]);
glBegin(GL_LINES);
glEnd();
}
glutSwapBuffers();
}
0477ばねばね
02/07/12 03:24ID:pljjbWtA次は筋肉でもやろ。
0478login:Penguin
02/07/12 12:03ID:8M4txI+90479login:Penguin
02/07/13 01:33ID:V6lw6K5b1) アイ・オー・コントロール
2) アイ・オー・コトル
3) アイ・オー・コトロ
4) アイ・オー・クツル
0480login:Penguin
02/07/13 01:36ID:ZQfsDMJ40481login:Penguin
02/07/13 03:49ID:Y17UaqG90482ちょっちやってみた
02/07/13 04:16ID:4FQ5CT5Qう〜ん。Cじゃ駄目?
0483login:Penguin
02/07/13 04:17ID:4FQ5CT5Q0484login:Penguin
02/07/13 04:49ID:Y17UaqG9昨日買った独習Perlはあんまり読んでないです。
0485login:Penguin
02/07/13 05:13ID:Y17UaqG90486login:Penguin
02/07/13 07:05ID:4FQ5CT5Qプログラムのインストが楽なのが良いよ。いちいちコンパイルするの
面倒でしょ?
0487login:Penguin
02/07/13 12:36ID:y/FpJvxQ0488login:Penguin
02/07/13 13:02ID:VEG3EIVtほっとけ。多分486はプログラム言語・環境を自分でインストールする必要が
ないディストリビューションのことを言ってるんだろ。
コンパイルしないですむプログラムってPerlとかsed,awkをちょろって使うことを
想像するよな。普通ソース書いて、コンパイルしてプログラムを作って、実行する
のが当たり前なんだが。
そういうことも書けない 486 はDQNってことで。
0489login:Penguin
02/07/13 16:18ID:JPP/8GD4486系がDQN?(´・ω・`)
0490login:Penguin
02/07/13 18:46ID:Ml46bmEz環境依存部分とOS依存部分とマシン依存部分
どこまでどうやってわけてるのか興味津々。
DelphiとKylixだとそのあたりで手を抜けそうだけど
ふつーのCだと線引きが面倒っつーか、いまいち
知識と経験が足りなくって・・・。
0491login:Penguin
02/07/13 19:22ID:iuPaBagYintelはいや〜。
0492login:Penguin
02/07/13 22:39ID:KT9e5gI7Xで画像を表示するときはXPutImage(XShmPutImage)を
つかうと思う(ここですでに間違っていたりして...)
んで、そのためにはXImage構造体に表示する内容を格納しなきゃ
いけないわけだけど、これをXPutPixelなんかでやっていたらむちゃ
時間かかる。
そこでXImage構造体に直接値を代入しているわけだけど、そんなこと
すると、Xの色数とか、ビットエンディアンなんかに気をつかわないと
いけない...
なんか、正攻法で速い方法って、ないっすか?
(用途としては、メモリ上の画像を表示するとか。さらにそれを
なめらかにフェードイン、フェードアウトするとか。)
さらにいうと、フェードイン、フェードアウトするためにXAllocColorをすると
これもしゃれにならないくらい時間がかかる(256色で0.5秒くらい)
0493login:Penguin
02/07/14 01:12ID:utN6QrPLLinux使いなんだから当然プログラミングしてるよね??
0494login:Penguin
02/07/14 01:53ID:0gmQZYJ9いえるかもしれんが
Linux使い→当然プログラミングしている は
成り立たないと思われ。
0495login:Penguin
02/07/14 02:48ID:R8XUXxiqXF86のDGA extentionとか、そっち方面かな?
Xlibいじるのが目的じゃなくて、何も考えずに
フェードイン/アウトとかやりたいっていうのなら、
SDLあたり使う方が楽だよ。多分。
0496500
02/07/14 03:55ID:0+95ASAZ0497login:Penguin
02/07/14 09:20ID:SNv7+3Vhもちろん
0498492
02/07/14 09:27ID:AysUSjKQそれも考えたが
XFree86でないXサーバとかでも使えるように、とか考え出すと
ふつうのXだけで動くようには、しておきたい...
(ゲームとかでなく、凝った画面表示はおまけのプログラムなので)
SDLって、どれくらい使われているのかな
(Linux以外を含めて)
0499login:Penguin
02/07/14 09:43ID:E/smBifZQtはいかが?
0500login:Penguin
02/07/14 09:49ID:w9MjeXdq0501login:Penguin
02/07/14 10:34ID:Ls0TW+0x3.xとかはまともに使えるのかな。
インストール出来なかったんでほっぽってありますが。
2.95とかでstringのat()使おうとしたら、そんな関数ねぇとか言われた
0502login:Penguin
02/07/14 12:58ID:BTJFLzrSよくわかんないけど、Imagemagickとかの実装が参考にならないかな?
# あれも遅いけど、内部データ形式が富豪すぎるせいもあるし...
■ このスレッドは過去ログ倉庫に格納されています