LINUX.ORG.RU

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

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

 , , ,

Что-то вроде 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 лет занимается одноименная компания в Томске.

>>> Подробности (unigine.com)

binstream_
()

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

 

Сразу скажу, что да, знаю, что есть 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
()