LINUX.ORG.RU

Сообщения JoeCrocker

 

GtkDialog

g_signal_connect(G_OBJECT(button),"activate",G_CALLBACK(GTK_RESPONSE_ACCEPT),dialog);

Как мне сделать открытие диалога по нажатию кнопки?

Пробовал gtk_dialog_run ставить, но без успешно.

Кстати, ещё попробовал сделать так в main.h, а после подключил во второй файл, но выдаёт ошибку

extern GtkWidget *dialog;
undefined reference to `dialog'

 ,

JoeCrocker
()

Растягивание Widget в GTK2 + Двойная буферизация

gtk_widget_set_size_request(das,100%,50%);

Как мне сделать что то подобное? Нужно чтобы при растягивании приложения виджет тоже тянулся в соотношении в процентах. И ещё вопрос, как отключить двойную буферизацию?

gtk_widget_set_double_buffered(das,FALSE);

 , ,

JoeCrocker
()

GtkGLExt

Во что можно запихнуть gtk_drawing_area, чтобы настроить ему размер?

 , ,

JoeCrocker
()

gtk2 menubar

Пытаюсь сделать меню, написал код из того что прочитал в мануале, вот получилось что то вроде

...
menubar = gtk_menu_bar_new();
...
file = gtk_menu_item_new_with_label("File");
...
gtk_menu_shell_append(GTK_MENU_SHELL(menubar), file);
...
filemenu = gtk_menu_new();
...
gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), filemenu);
...

Он мне выдаёт меню в высоту всей программы

 ,

JoeCrocker
()

Разделение кода

Вот таки пишу код на С.

Всё входит в один файл .c, как мне разделить его на несколько частей, в одном обратотка Menubar, в другом OpenGL?

 ,

JoeCrocker
()

GTK2 + OpenGL

Как можно в GTK2 сделать OpenGL приложение?

На официальной документации что то ничего не нашёл.

И посоветуйте стабильную версию GTK2, и желательно бы без лишних дополнений для работы OpenGL. Спасибо.

 ,

JoeCrocker
()

Чтение архивов Zip и работа с ними

И так, использую язык С.

Нужно прочитать .zip файл, и после нужно использовать файлы из него.

Можно пример кода, или статью?

 ,

JoeCrocker
()

relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC

Та проблема решилась, закрыл тему. Вот ошибка:

/usr/bin/ld: ./obj/tier0/dbg.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
./obj/tier0/dbg.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Makefile.tier0:44: recipe for target 'tier0_i686.so' failed
make[1]: *** [tier0_i686.so] Error 1

А это Makefile's: https://yadi.sk/d/ozYlYwxYquqRA

 ,

JoeCrocker
()

g++: error: unrecognized command line option ‘-Wl’

Короче заключительный этап.

SHLIBLDFLAGS="-shared -Wl,-Map,$@_map.txt -Wl"

Попробовал

SHLIBLDFLAGS="-shared -Wl,-Map, -Wl $@_map.txt"

Выдал:

g++: error: tier0_map.txt: No such file or directory

Как я понл -Wl старый тег, есть ли альтернатива новому, и зачем вообще нужен этот тег?

 ,

JoeCrocker
()

Assembler messages

Это уже третяя тема, но с другим вопросом, те решились таки.

Вот код:

__asm
	(
		// force the cpu to synchronize the instruction queue
		// NJS: CPUID can really impact performance in tight loops.
		//cpuid
		//cpuid
		//cpuid
		"mov		ecx, pSample"
		"rdtsc"
		"mov		[ecx],     eax"
		"mov		[ecx+4],   edx"
	);

Ошибки:

../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'
../public/tier0/fasttimer.h:260: Error: too many memory references for `mov'

 ,

JoeCrocker
()

Linux Port (Part 2)

Подымаю тему, но с не много другим подходом.

Выяснились кое какие детали, и возможно строение этих файлов заточено под Visual Studio 6.0

И было посоветовано мне написать все эти Makefile's по новой.

Вопрос: как мне это делать, или куда рыть?

P.S. порт имеется в самом движке и игре, и его классы подписаны что то вроде *_linux

Вот вам папка с Makefile's: https://yadi.sk/d/oT_SrA23qnRj7

 , ,

JoeCrocker
()

Linux Port

Всем привет, хочу восстановить порт игрового движка под Linux, этим никто ещё не занимался. Вот часть текста из консоли:

make
if [ ! -d . ];then mkdir .;fi
cd .
make -f Makefile.tier0 ARCH=AMD CC=cc CPLUS= CPP_LIB= BUILD_DIR=. BUILD_OBJ_DIR=./obj SOURCE_DIR=.. ENGINE_SRC_DIR=../engine COMMON_SRC_DIR=../common BASE_CFLAGS="-D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf" PUBLIC_SRC_DIR=../public DBG_SRC_DIR=../dbg ARCH_CFLAGS="-march=k6 -mmmx -msse -msse2 -O3 -pipe -fomit-frame-pointer -ffast-math -fforce-addr -funroll-loops -malign-loops=4 -malign-jumps=4 -malign-functions=4" SHLIBLDFLAGS="-shared -Wl,-Map,tier0_map.txt -Wl" SHLIBEXT=so LIBEXT=a SHLIBLDFLAGS="-shared -Wl,-Map,tier0_map.txt -Wl" SHLIBEXT=so CHECK_DSP="make_check/check_differences" ARCMD="ar rvs"
make[1]: Entering directory 'source2003_tests/src_main/linux'
mkdir ./obj
mkdir ./obj/tier0
make_check/check_differences ../tier0/tier0.dsp
I../public -Dstrcmpi=strcasecmp -w -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -march=k6 -mmmx -msse -msse2 -O3 -pipe -fomit-frame-pointer -ffast-math -fforce-addr -funroll-loops -malign-loops=4 -malign-jumps=4 -malign-functions=4 -g -ggdb -o obj/tier0/dbg.o -c ../tier0/dbg.cpp
make[1]: I../public: Command not found
Makefile.tier0:47: recipe for target 'obj/tier0/dbg.o' failed
make[1]: [obj/tier0/dbg.o] Error 127 (ignored)
Makefile's довольно старые и рассчитаны на старый Linux, но вот я хочу их обновить.

 

JoeCrocker
()

RSS подписка на новые темы