LINUX.ORG.RU

Избранные сообщения dimgel

А чем в C++ изображения принято обрабатывать?

Форум — Development

Что-то вроде Pillow было бы очень приятно, но всё что я знаю, либо убогое, либо не удобное. Понятно что более низкий уровень, скорость, все дела, но блох мне ловить не надо, важнее чтобы оно надёжнее работало, чем быстрее.

 , , ,

peregrine ()

Вышла бесплатная версия 3D-движка UNIGINE: Community edition

Новости — Разработка
Группа Разработка

Вместе с релизом UNIGINE SDK 2.11 стала доступна UNIGINE 2 Community, бесплатная версия этого кросс-платформенного 3D-движка.

Поддерживаемые платформы - Windows и Linux (начиная с Debian 8; включая отечественный дистрибутив Astra Linux, используемый в оборонной промышленности). Также поддерживается работа с разнообразным VR оборудованием. Под Linux на 100% работает как сам движок, так и идущий в комплекте визуальный редактор 3D сцен (UnigineEditor). В качестве графического API используется OpenGL 4.5+.

На базе UNIGINE Engine выпущена серия GPU бенчмарков (включая популярные Heaven и Superposition), а также разрабатываются профессиональные тренажеры и различные промышленные цифровые двойники. Вышло несколько игр, включая Oil Rush (2012), Cradle (2015), RF-X (2016), Sumoman (2017). В настоящее время готовится к выпуску амбициозная космическая MMORPG Dual Universe. Отличительными особенностями движка является поддержка очень больших виртуальных сцен, наличие большого количества функционала «из коробки», высокая производительность, одновременная поддержка и C++, и C# API. Ряд продвинутых возможностей есть только в коммерческих версиях Sim и Engineering.

Community-версия движка бесплатно доступна независимым разработчикам и проектам с выручкой/финансированием до $100k в год, а также некоммерческим и образовательным организациям.

Разработкой UNIGINE последние 15 лет занимается одноименная компания в Томске.

>>> Подробности

 , , , ,

binstream_ ()

Как правильно разделить 2 типа сборки в Makefile

Форум — Development

Сразу скажу, что да, знаю, что есть autotools, но хочу попробовать все же обойтись одним мейкфайлом.

Есть библиотека, которая собирается под arm и x86, выглядит это все примерно так:

INCLUDEPATH=-I./include -I$(SRCINCL) -I$(USRLIBS)

LIBS= -lpthread

MAIN_SRC= \
	./src/mylib.c \
	./src/impl_1.c

all: arm

arm: TARGET=arm
arm: CC=$(CC_ARM)
arm: buildinfo clean depends ${TARGET_LIB} test

x86-64: TARGET=linux
x86-64: CC=$(CC_LINUX)
x86-64: buildinfo clean depends ${TARGET_LIB} test

$(TARGET_LIB): $(MAIN_SRC:.c=.o)
	@echo linking: $@
	@ $(CC) ${LDFLAGS} ${LIBS} -Wl,-soname,$(LIB_NAME).so.$(MAJOR).$(MINOR) -o $@ $^ ./libs/other/libother.a
	@rm -f ./$(LIB_NAME).so
	@ln -s -f $@ ./$(LIB_NAME).so

$(MAIN_SRC:.c=.o): %.o:%.c
	@echo compile: "\t" $<" >>> "$@
	@ $(CC) $(INCLUDEPATH) $(CFLAGS_LIB) $(DEFINES)  $< -o $@

depends:
	@echo depends!
	@echo $(MAKE) $(TARGET)
	@cd libs/other && $(MAKE) $(TARGET)

Теперь мне нужно добавить новую цель target2, которая бы собирала так же как arm цель, но вместо ./src/impl_1.c использовала бы файл ./src/impl_2.c

Я тут наговнокодил так, но это все выглядит максимально плохо конечно…

INCLUDEPATH=-I./include -I$(SRCINCL) -I$(USRLIBS)

LIBS= -lpthread

MAIN_SRC= \
	./src/mylib.c

SRC_1= \
	./src/impl_1.c

SRC_2= \
	./src/impl_2.c

all: arm

arm: TARGET=arm
arm: CC=$(CC_ARM)
arm: buildinfo clean depends ${TARGET_LIB} test

target2: TARGET=arm
target2: CC=$(CC_ARM)
target2: buildinfo clean depends ${TARGET_LIB_2} test

x86-64: TARGET=linux
x86-64: CC=$(CC_LINUX)
x86-64: buildinfo clean depends ${TARGET_LIB} test

$(TARGET_LIB): $(MAIN_SRC:.c=.o) $(SRC_1:.c=.o)
	@echo linking: $@
	@ $(CC) ${LDFLAGS} ${LIBS} -Wl,-soname,$(LIB_NAME).so.$(MAJOR).$(MINOR) -o $@ $^ ./libs/other/libother.a
	@rm -f ./$(LIB_NAME).so
	@ln -s -f $@ ./$(LIB_NAME).so

$(TARGET_LIB_2): $(MAIN_SRC:.c=.o) $(SRC_2:.c=.o)
	@echo linking: $@
	@ $(CC) ${LDFLAGS} ${LIBS} -Wl,-soname,$(LIB_NAME).so.$(MAJOR).$(MINOR) -o $@ $^ ./libs/other/libother.a
	@rm -f ./$(LIB_NAME).so
	@ln -s -f $@ ./$(LIB_NAME).so

$(MAIN_SRC:.c=.o): %.o:%.c
	@echo compile: "\t" $<" >>> "$@
	@ $(CC) $(INCLUDEPATH) $(CFLAGS_LIB) $(DEFINES)  $< -o $@

$(SRC_1:.c=.o): %.o:%.c
	@echo compile: "\t" $<" >>> "$@
	@ $(CC) $(INCLUDEPATH) $(CFLAGS_LIB) $(DEFINES)  $< -o $@

$(SRC_2:.c=.o): %.o:%.c
	@echo compile: "\t" $<" >>> "$@
	@ $(CC) $(INCLUDEPATH) $(CFLAGS_LIB) $(DEFINES)  $< -o $@


depends:
	@echo depends!
	@echo $(MAKE) $(TARGET)
	@cd libs/other && $(MAKE) $(TARGET)

P.S. Я намерено многое выкинул из примера, не относящееся к сути.

 

id_thx1138 ()