// мобильные платформы
// mobile
{$IF DEFINED(ANDROID) OR DEFINED(iOS) OR DEFINED(iPHONESIM)}
  {$DEFINE MOBILE}
{$IFEND}

// так как мне надоело делать проверки, но я знаю что их надо делать, я добавляю дополнительную "отладочную"
// информацию. Для себя я смогу это отключить, но это можно будет использовать для выявления каких-нибудь определённых багов.
{$DEFINE FULL_LOGGING}

// Rus: если не хотим использовать GreenEngine, включаем старые методы (сейчас выключены).
// Eng: if we do not want to use GreenEngine, enable the old methods (now disabled).
{.$DEFINE OLD_METHODS}
{$IFNDEF OLD_METHODS}
  {$I gegl_config.cfg}
{$ENDIF}

// inializing in Handle (LCL, VCL)
{.$DEFINE USE_INIT_HANDLE}

// Delphi 7 and down
{$IFNDEF FPC}
  {$IFDEF VER150}                    // Delphi 7
    {$DEFINE DELPHI7_AND_DOWN}
  {$ENDIF}
  {$IFDEF VER140}                    // Delphi 6
    {$DEFINE DELPHI7_AND_DOWN}
  {$ENDIF}
  {$IFDEF VER130}                    // Delphi 5
    {$DEFINE DELPHI7_AND_DOWN}
  {$ENDIF}
  {$IFDEF VER120}                    // Delphi 4
    {$DEFINE DELPHI7_AND_DOWN}
  {$ENDIF}
  {$IFDEF VER110}                    // C++ Builder 3
    {$DEFINE DELPHI7_AND_DOWN}
  {$ENDIF}
  {$IFDEF VER100}                    // Delphi 3
    {$DEFINE DELPHI7_AND_DOWN}
  {$ENDIF}
{$ENDIF}

{$IF DEFINED(DARWIN) AND (NOT DEFINED(iOS) OR NOT DEFINED(iPHONESIM))}
  {$IFNDEF CPUi386 }
    {$DEFINE MAC_COCOA}
  {$ENDIF}
{$IFEND}

{$IFDEF MAC_COCOA}
  {$DEFINE NO_USE_STATIC_LIBRARY}
{$ENDIF}

// Use compile library (dll, so ...)
{$DEFINE LIBRARY_COMPILE}

{$IFNDEF MOBILE}
  {$IFDEF USE_INIT_HANDLE}
    {$UNDEF USE_VKEYBOARD}
  {$ENDIF}
{$ELSE}
  {$UNDEF USE_INIT_HANDLE}
{$ENDIF}

// Escape = exit
{$DEFINE USE_EXIT_ESCAPE}

// Defines for GNU/Linux
{$IFDEF LINUX}
  // custom -----------------
  {$DEFINE USE_OGG_STATIC}
  {.$DEFINE USE_THEORA_STATIC}
  // ------------------------

  {$DEFINE USE_X11}
  {$DEFINE USE_LIBJPEG}
  {$DEFINE USE_OPENAL}
  {$DEFINE USE_VORBIS}

  {.$DEFINE USE_FULL_GLX}
{$ENDIF}

{$IFDEF ANDROID}
  {$DEFINE ANDROID}
  {$DEFINE USE_GLES}
  {$DEFINE NO_EGL}
  {$DEFINE USE_VORBIS}
  {$DEFINE USE_LIBJPEG}
  {$DEFINE USE_OPENAL}
  {$UNDEF  USE_X11}
  {$UNDEF  USE_OGG_STATIC}
  {$UNDEF  USE_THEORA_STATIC}
  {.$DEFINE USE_TREMOLO}
  {$DEFINE USE_MENUGUI}
  {$UNDEF USE_INIT_HANDLE}
{$ENDIF}

// Defines for Windows and Windows Mobile
{$IFDEF MSWINDOWS}
  {$DEFINE WINDOWS}
{$ENDIF}
{$IFDEF WINDOWS}
  // custom -----------------
  {$DEFINE USE_LIBJPEG}
  {$DEFINE USE_OPENAL}
  {$DEFINE USE_OGG_STATIC}
  {.$DEFINE USE_THEORA_STATIC}
  // ------------------------

  {$DEFINE USE_VORBIS}
  {.$DEFINE USE_FULL_WGL}
{$ENDIF}

// Defines for MacOS X and iOS
{$IFDEF DARWIN}
  // custom -----------------
  {/$DEFINE USE_OGG_STATIC}
  {/$DEFINE USE_THEORA_STATIC}
  // ------------------------

  {$DEFINE USE_LIBJPEG}
  {$DEFINE USE_OPENAL}
  {$DEFINE USE_VORBIS}

  {$IF DEFINED(iPHONESIM) or (DEFINED(DARWIN) and DEFINED(CPUARM))}
    {$DEFINE iOS}
    {$DEFINE USE_GLES}
    {$DEFINE NO_EGL}
    {.$UNDEF  USE_LIBJPEG}
    {$DEFINE USE_OGG_STATIC}
    {.$DEFINE USE_THEORA_STATIC}

    {$UNDEF USE_INIT_HANDLE}

    {$IFNDEF iPHONESIM}
      // custom -----------
      // If you don't need to decode theora, you can uncomment this DEFINE
      {.$DEFINE USE_TREMOR}
      // ------------------
    {$ENDIF}
  {$ELSE}
    {$DEFINE MACOSX}
  {$IFEND}
{$ENDIF}

// OpenGL ES render for PC
{/$DEFINE USE_GLES}
{$IFDEF USE_GLES}
  // эта часть на AMD не работает
  {.$DEFINE USE_GLES_ON_DESKTOP}
  {$IFDEF USE_GLES_ON_DESKTOP}
    {.$DEFINE USE_AMD_DRIVERS}
  {$ENDIF}
{$ENDIF}

// Functionality
{$DEFINE USE_LOG_FLUSH}
{$DEFINE USE_ZIP}
{$DEFINE USE_JOYSTICK}
{$DEFINE USE_JPG}
{$DEFINE USE_PNG}
{$DEFINE USE_PVR}
{$DEFINE USE_TGA}
{$DEFINE USE_SENGINE}
{$DEFINE USE_PARTICLES}
{$DEFINE USE_SOUND}
{$IFDEF USE_SOUND}
  {$DEFINE USE_OGG}
  {$DEFINE USE_WAV}
{$ENDIF}
{$DEFINE USE_VIDEO}
{$IFDEF USE_VIDEO}
  {$DEFINE USE_THEORA}
{$ENDIF}

// Enable if you want to use zlib compression functions
// WARNING: ZenGL doesn't provide all needed object files, you should use yours(just have no desire to recompile zlib for every platform)


// Disable unsupported features
{$IF DEFINED(USE_TREMOLO) or DEFINED(USE_TREMOR)}
  {$UNDEF USE_VORBIS}
  {$UNDEF USE_THEORA}
{$IFEND}
{$IFNDEF FPC}
  {$UNDEF USE_OGG_STATIC}
  {$UNDEF USE_THEORA_STATIC}
{$ENDIF}

// Specially for buggy Delphi, which trying to parse everything...
{$IFDEF FPC}
  {$I zgl_fpc.cfg}

  {$IFNDEF MACOSX}
    {$IFDEF cpui386}
      {$DEFINE USE_ASM}
    {$ENDIF}
  {$ENDIF}
{$ELSE}
  {$MINENUMSIZE 4}
  {$DEFINE USE_ASM}
  {$DEFINE CPUi386}
  {$WARN COMBINING_SIGNED_UNSIGNED OFF}
  {$WARN COMPARING_SIGNED_UNSIGNED OFF}
  {$IFNDEF DELPHI7_AND_DOWN}
    {$DEFINE USE_INLINE}
  {$ENDIF}
{$ENDIF}

{$IFNDEF USE_INIT_HANDLE}
  {$DEFINE WND_USE}
{$ELSE}
  {$IFDEF WINDOWS}
    {$DEFINE WND_USE}
  {$ENDIF}
{$ENDIF}
