Π£ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ makescene, ΠΊΠΎΡΠΎΡΡΡ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΡΠ΅ΡΠΈΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
Π― ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π» ΠΈ ΡΠΎΠ±ΡΠ°Π» ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ Π² Readme.md ΠΏΠΎΠ΄ Ubuntu 16.04 64 Π±ΠΈΡ. Π‘Π±ΠΎΡΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΅ΡΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ makescene Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ -i
Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈ, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ image_io.cc, Π² ΡΡΠ½ΠΊΡΠΈΠΈ load_png_file, Π²ΠΎΠΊΡΡΠ³ ΡΡΡΠΎΠΊ 311-314, Π³Π΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ.
Π― Π½Π΅ Π·Π½Π°Ρ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ. ΠΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ headers.height ΠΈ headers.channels ΠΈΠΌΠ΅ΡΡ ΡΠΌΡΡΠ».
ΠΡΠ°Ρ
Π² image_io
ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ΅Π½. ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΎΠ±ΡΠ°Π· Π²ΡΡΡΠ½ΡΡ?
#include "mve/image_io.h"
int main() {
mve::image::load_png_file("your path");
return 0;
}
ΠΡΡΡ Π»ΠΈ Π΅ΡΠ΅ ΡΡΠΎ-ΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠ΅ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ? ΠΡΠΎ 8 ΠΈΠ»ΠΈ 16-Π±ΠΈΡΠ½ΡΠΉ PNG?
Π₯ΠΎΡΠΎΡΠΎ, Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π» ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΡΡΠ°ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ PNG, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ΅, ΡΡΠΎ ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ»Π΅ΡΠ°Π΅Ρ Ρ "UngΓΌltiger Maschinenbefehl (Speicherabzug geschrieben)".
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Ρ ΠΈΠ·ΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Β«load_tiff_fileΒ» ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠΆΡ ΡΠ°ΠΉΠ» TIFF, ΠΎΠ½, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. ΠΠΎΠΆΠ΅Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΡ load_png_file ΡΠ»ΠΎΠΌΠ°Π½Π°?
ΠΠ΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ, Π½ΠΎ Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° load_png_file ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» strace Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΡΠΎΠ³ΠΎ ΠΆΡΡΠ½Π°Π»Π° ΠΏΠ΅ΡΠ΅Π΄ ΡΠ±ΠΎΠ΅ΠΌ:
14:00:46.197536 ΠΎΡΠΊΡΡΡΡ("./frame_0001.png", O_RDONLY) = 3
14:00:46.197561 fstat(3, {st_mode=S_IFREG|0664, st_size=407653, ...}) = 0
14:00:46.197582 ΡΠΈΡΠ°ΡΡ(3, "\211PNG\r\n\32\n\0\0\0\rIHDR\0\0\5\0\0\0\2\320\10\2\0 \0\0@\37J"..., 4096) = 4096
14:00:46.197651 mmap(NULL, 2768896, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcadc163000
14:00:46.198666 --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPN, si_addr=0x40b69d} ---
14:00:46.337334 +++ ΡΠ±ΠΈΡ SIGILL (ΡΠ±ΡΠΎΡ ΡΠ΄ΡΠ°) +++
ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΡΠΈΡΠ»Π°ΡΡ ΠΌΠ½Π΅ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅?
Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ png, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ png ... Π― Π²ΠΈΠ΄Π΅Π» ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΉΠ» Β«.pngΒ» Π±ΡΠ» ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ jpeg.
http://maxdid.it/gamejam/img/frame_0001.png
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ffmpeg Π΄Π»Ρ ΡΠΊΡΠΏΠΎΡΡΠ° ΠΊΠ°Π΄ΡΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎ Π² ΡΠ°ΠΉΠ»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
Π― ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΊΠΎΠΌΠ°Π½Π΄Ρ convert, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈΠ· png Π² tiff ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, Π½ΠΎ Π±Π΅Π·ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ½ΠΎ.
ΠΠ΄Π΅ΡΡ ΡΠ°ΠΉΠ» Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
open("frame_0001.png", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0640, st_size=691915, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5395d8a000
read(3, "\211PNG\r\n\32\n\0\0\0\rIHDR\0\0\5\0\0\0\2\320\10\2\0\0\0@\37J"..., 4096) = 4096
mmap(NULL, 2768896, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5393b87000
read(3, "\7\0?)\363\207i\27\30x'\356\330\214Xg\7\260\334W\23G\371\323\31 \323\2S\273\353\\"..., 4096) = 4096
...
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ Π²Π°ΡΠ΅ΠΌΡ strace
Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ±ΠΈΡΠ° SIGILL (Π½Π΅ KILL). Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΈΠ»ΠΈ ΠΠ‘ ΠΏΡΡΠ°ΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅Π²Π΅ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ. Π― Π½Π΅ Π·Π½Π°Ρ, ΡΡΠΎ Ρ ΡΡΠΈΠΌ Π΄Π΅Π»Π°ΡΡ, Π½ΠΎ Ρ ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΡΡΠΎ Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ»ΠΈ Π²Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libpng, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΊΠ°ΠΊ-ΡΠΎ ΠΈΡΠΏΠΎΡΡΠΈΠ»Π°ΡΡ. ΠΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ/ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ libpng?
ΠΡΠ°ΠΊ, Ρ ΡΠ΄Π°Π»ΠΈΠ» Π²Π΅ΡΡΠΈΡ libpng, ΠΊΠΎΡΠΎΡΡΡ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ apt-get install, ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ Π·Π°Π³ΡΡΠ·ΠΈΠ» ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ libpng, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π» Π΅Π³ΠΎ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ».
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΡΡΠ΅ΠΊΡ ΡΠΎΡ ΠΆΠ΅. ΠΠΎΠΆΠ΅Ρ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ? Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ AMD Phenom II X4 965, Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π½Π΅ ΡΠ°ΠΌΠ°Ρ Π½ΠΎΠ²Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π±ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°Π½ΡΡΠ΅.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ, ΡΠ΅Π±ΡΡΠ°, Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π΄ΡΠΌΠ°Ρ, Ρ Π·Π°ΠΊΡΠΎΡ ΡΠ΅ΠΌΡ.
ΠΠ½Π΅ ΠΆΠ°Π»Ρ ΡΠ»ΡΡΠ°ΡΡ, ΡΡΠΎ ΡΡΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π― Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π²Π°ΡΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅... Π½ΠΎ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ ΠΈΠ΄Π΅ΠΉ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π΅ΡΡΡ ΡΠ»Π°Π³ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π΄Π»Ρ libpng? ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, Π½Π΅ Π·Π½Π°Ρ, ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π― Π·Π½Π°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ makescene Π²ΡΠ»Π΅ΡΠ°Π΅Ρ ΠΏΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΡΠ»Π΅ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠΎ Π½Π΅ ΠΏΡΠΈΡΠΈΠ½Π° libjpeg ΠΈΠ»ΠΈ libpng, Π½Π°ΡΡΠΎΡΡΠ°Ρ ΠΏΡΠΈΡΠΈΠ½Π° - openMP. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ
ΠΊΠΎΠ΄ΠΎΠ² Π² makescene.cc:
845 Π»ΠΈΠ½ΠΈΡ
mve::ImageBase::Ptr ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅;
for (std::size_t i = 0; i < dir.size(); ++i)
....
std::string exif;
image = load_any_image(afname, &exif);
...
ΠΠΎ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°. ΠΡ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ image
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΈ Ρ
ΠΎΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°, Π²Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·-Π·Π° ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π³ΠΎΠ½ΠΊΠΈ ΠΈ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅Π²Π΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ..
ΠΡ ΠΏΡΡΠ°Π»ΠΈΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ #pragma omp ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ?
@timlgy , Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ Π½Π°ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅? ΠΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅?
Π£ ΠΌΠ΅Π½Ρ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Ubuntu 14.04.5 LTS, 16U32G ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅ gcc 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) PS Β«Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅Β», ΡΡΠΎ ΡΡΠΎ? prebundle.sfm?
ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ #pragma omp Critical
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° omp ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·Π΄Π΅Π» ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π·Π° ΡΠ°Π·.
ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, 'load_any_image' ΠΎΠΏΠ°ΡΠ΅Π½, Π΅ΡΠ»ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π²Π½ΡΡΡΠΈ mve::ImageBase::Ptr imagel=oad_any_image(afname, &exif);
load_any_image
ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ libpng
Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ ΠΏΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ, ΡΡΠΎ, Ρ Π½Π°Π΄Π΅ΡΡΡ, ΠΌΡ ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ. ΠΠΎΠ΄ Β«Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈΒ» Ρ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Ρ, ΡΡΠΎ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ, ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΠ³ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ ΡΡΠΈ ΡΠ±ΠΎΠΈ?
ΠΠΎΠ³Π΄Π° Ρ Π·Π°Π³ΡΡΠΆΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° jpg tif ΠΈΠ»ΠΈ png) Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ Π·Π°Π³ΡΡΠΆΠ°Ρ Π΄Π²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°) Ρ Π²ΡΡΠΎΠΊΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ±ΠΎΠΉ.
Π― Π½Π΅ Π·Π½Π°Ρ, ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, ΠΈ Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΠΈΠ΄Π΅Π» ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΡ ΡΠ±ΠΎΠΉ ΡΠ²ΡΠ·Π°Π½ Ρ Π²Π°ΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ? Π― ΠΌΠΎΠ³Ρ ΡΠ΅Π±Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ, ΡΡΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° 32 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ΄Π΅Ρ) Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ Ρ 2 ΠΠ ΠΠΠ£ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π ΠΏΠΎΠΊΠ° ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΡΠΎΠΊΡ #pragma omp critical
ΠΏΠ΅ΡΠ΅Π΄ load_any_image
, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
@timlgy , ΠΌΠΎΠΆΠ΅ΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ±ΠΎΡ?
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ ΠΏΠΎΠ΄ Β«16U32GΒ»?
@ andre-schulz 16U32G ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π¦Π 16 ΠΈ 32 ΠΠ ΠΏΠ°ΠΌΡΡΠΈ.
Π― Π½Π°Π±Π»ΡΠ΄Π°Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠ±ΠΎΠΉ Π² Windows 7 64x Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠ±ΠΎΡΠΊΠΎΠΉ mve ΠΏΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ:
ΠΡΡΠ°Π»ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΡΠΎΠΊΡ #pragma omp Critical ΠΏΠ΅ΡΠ΅Π΄ load_any_image, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ. ΠΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ? ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π·Π΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ OpenMP?
ΠΡΡΠ°Π»ΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅: Ρ ΠΌΠ΅Π½Ρ ΡΠΎΠΆΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠ±ΠΎΠΉ.
ΠΡΠΈΠ²Π΅Ρ @stiv-yakovenko,
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» png, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅?
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΠΎΡ
ΠΎΠΆΠ΅, Π² ΡΠΎΠΌ, ΡΡΠΎ makescene
Π±ΡΠ» ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π½ΠΎ ΡΠ²ΡΠ·Π°Π½ Ρ libpng Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΡΠΏΡΡΠΊΠ°; Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎ ΡΠ²ΡΠ·ΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (/MD ΠΏΡΠΎΡΠΈΠ² /MDd). ΠΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ. Π― Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π΄Π°Π»ΡΡΠ΅.
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ, ΡΡΠΎ makescene
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ RelWithDebInfo?
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ makescene
Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Debug
ΠΊ CMAKE_CONFIGURATION_TYPES
Π² ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΌ CMakeLists.txt
. ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΠΈ Π²ΡΡΡΠ½ΡΡ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π² ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ makescene
. Π― ΠΏΠΎΠΏΡΡΠ°ΡΡΡ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΌΠΎΠ³Ρ Π»ΠΈ Ρ ΠΊΠ°ΠΊ-ΡΠΎ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ/Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ.
Π― ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Ρ, ΡΡΠΎ Π²Π΅ΡΡΠΈΡ ReleaseWithDeb ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
@andre-schulz ΠΡΠΈΠ²Π΅Ρ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ Π°Π½Π°Π»ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ. Π― ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π» ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ» tiffd.dll, zlibd.dll Π² ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ makecene. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π²ΡΠ»Π΅ΡΠ°Π΅Ρ
png_read_image(png, &row_pointers[0]);
@andre-schulz Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅! ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ CMAKE_CONFIGURATION_TYPES Π² CMakeLists.txt ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ MVE.sln ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ jpg ΡΠ΅ΡΠ΅Π½Π°.