рдЗрдореЗрдЬ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА SAIL 0.9.0-pre12 рдХрд╛ рд╡рд┐рдореЛрдЪрди

SAIL рдЗрдореЗрдЬ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рдореБрдЦ рдЕрдкрдбреЗрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдмрдВрдж KSquirrel рдЗрдореЗрдЬ рд╡реНрдпреВрдЕрд░ рд╕реЗ рдХреЛрдбреЗрдХреНрд╕ рдХрд╛ C рд░реАрд░рд╛рдЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЕрдореВрд░реНрдд рдПрдкреАрдЖрдИ рдФрд░ рдХрдИ рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рдеред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЕрднреА рднреА рд▓рдЧрд╛рддрд╛рд░ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдмрд╛рдЗрдирд░реА рдФрд░ рдПрдкреАрдЖрдИ рд╕рдВрдЧрддрддрд╛ рдХреА рдЕрднреА рддрдХ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИред рдкреНрд░рджрд░реНрд╢рдиред

рд╕реЗрд▓ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ

  • рддреЗрдЬрд╝ рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА;
  • C++11 рдХреА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде C17 рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛;
  • рдЫрд╡рд┐ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдХреЛрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдФрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
  • рдлрд╝рд╛рдЗрд▓, рдореЗрдореЛрд░реА, рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдкрдврд╝рдирд╛;
  • рдмрд╣реБ-рдкреГрд╖реНрда рдФрд░ рдПрдирд┐рдореЗрдЯреЗрдб рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди;
  • рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЕрднреА рднреА рд╕рдВрдмрдВрдзрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ libjpeg, libpng, рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо: Linux, Windows, macOS;
  • "рдЬрд╛рдВрдЪ" - рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдбрд┐рдХреЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЫрд╡рд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛;
  • рдорд╛рдирд╡ рдЗрдХрд╛рдИ рдирд╛рдо (рдХреЛрдИ FIMULTIBITMAP рдирд╣реАрдВ);
  • рдЖрдИрд╕реАрд╕реА рдкреНрд░реЛрдлрд╛рдЗрд▓ рдкрдврд╝рдирд╛ рдФрд░ рд▓рд┐рдЦрдирд╛;
  • RGBA рдпрд╛ BGRA рдкрд┐рдХреНрд╕реЗрд▓ рднреЗрдЬрддрд╛ рд╣реИ;
  • рдХреЛрдбреЗрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдиреЗ рдкрд░ рдореВрд▓ рдкрд┐рдХреНрд╕реЗрд▓ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реАрдПрдорд╡рд╛рдИрдХреЗ) рд▓реМрдЯрд╛рддрд╛ рд╣реИ;

рдЕрдВрддрд┐рдо рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╕реВрдЪреА:

  • рдПрдкреАрдЖрдИ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдФрд░ рд╕рд░рд▓реАрдХрд░рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдерд╛: struct cell_context *рд╕рдВрджрд░реНрдн; SAIL_TRY(sAIL_init(&context)); рд╕реНрдЯреНрд░рдХреНрдЪрд░ рд╕реЗрд▓_рдЗрдореЗрдЬ *рдЗрдореЗрдЬ; рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЪрд╛рд░ * рдЫрд╡рд┐_рдкрд┐рдХреНрд╕реЗрд▓; SAIL_TRY (рд╕реЗрд▓_рд░реАрдб (рдкрде, рд╕рдВрджрд░реНрдн, рдФрд░ рдЫрд╡рд┐, (рд╢реВрдиреНрдп **) рдФрд░ рдЫрд╡рд┐_рдкрд┐рдХреНрд╕реЗрд▓)); ... рдореБрдлрд╝реНрдд(рдЫрд╡рд┐_рдкрд┐рдХреНрд╕реЗрд▓); рдкрд╛рд▓_рдирд╖реНрдЯ_рдЫрд╡рд┐(рдЫрд╡рд┐);

    рдЕрдм: struct cell_image *image; SAIL_TRY(рд╕реЗрд▓_рд░реАрдб_рдлрд╝рд╛рдЗрд▓(рдкрде, &рдЫрд╡рд┐); ...рд╕реЗрд▓_рдбрд┐рд╕реНрдЯреНрд░реЙрдп_рдЗрдореЗрдЬ(рдЫрд╡рд┐);

  • рдмреАрдПрдордкреА, рдЬреАрдЖрдИрдПрдл, рдЯреАрдЖрдИрдПрдлрдПрдл рдкреНрд░рд╛рд░реВрдк рдЬреЛрдбрд╝реЗ рдЧрдП;
  • рдпреВрдбрдмреНрд▓реНрдпреВрдкреА рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рд╡реАрд╕реАрдкреАрдХреЗрдЬреА рдореЗрдВ рдЙрдкрд▓рдмреНрдзрддрд╛;
  • рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХрд╛рд╢рд┐рдд;
  • C++ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ C++17 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;
  • рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рд▓реЗрдХрд┐рди рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣ рдХреЗрд╡рд▓ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдХрд░рдХреЗ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдм SAIL рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП CMake find_package() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;
  • рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реА рдЧрдИ (SAIL_STATIC=ON);
  • рд╕рднреА рдХреЛрдбреЗрдХреНрд╕ рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реА рдЧрдИ (SAIL_COMBINE_CODECS=ON);
  • ╬╝nit-рдЖрдзрд╛рд░рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ;

рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕реНрдерд╛рдкрдирд╛ рд╡рд┐рдзрд┐

  • Linux - vcpkg, рдбреЗрдмрд┐рдпрди рдирд┐рдпрдо рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВ
  • рд╡рд┐рдВрдбреЛрдЬрд╝ - рд╡реАрд╕реАрдкреАрдХреЗрдЬреА
  • macOS - рдмреНрд░реВ

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ