Framework Structure


In this article we describe the framefork core and Standard Package directory structure. You may take it as example when creating your own packages. The following are the names relative to the directory where you have the framework installed.



Directory structure

The Nitisa framework has the following directory structure.

  • Android contains Core and Standard package projects for Android platform.
    • Charts contains the Charts package project.
    • Dependencies contains third-party libraries project uses in the Android part of the framework.
    • Nitisa contains the framework Core project.
    • Standard contains the Standard package project.
  • Dependencies - directory where third-party libraries source code is placed.
  • FormBuilder - directory where Visual Form Builder source code is.
  • FormLayouts - directory with the Form Builder's form layouts.
  • Linux contains projects for Linux platform.
    • Charts contains the Charts package project.
    • Nitisa contains the framework Core project.
    • SimpleTest contains project of simple console application. It's just an example. Use it to observe how to configure your projects for the remove building at Linux.
    • Standard contains project for the Standard package.
  • Nitisa - the framework core directory.
    • BuiltInControls - here is all default built-in controls are located.
    • Core contains all base and default classes, types definitions and useful functions.
    • Helpers is a directory where all helpers are located.
    • Interfaces contains all core interfaces used by framework.
    • Modules contains the framework modules.
    • Properties is a directory where all default often used properties are located.
    • PropertyHandlers contains a default empty property handler implementation.
  • Package.Charts contains project for building dll(which is used by Form Builder) for Charts package.
  • Package.OpenGL contains project for building dll(which is used by Form Builder) for OpenGL package.
  • Package.Standard contains project for building dll(which is used by Form Builder) for Standard package.
  • Packages - a directory where all packages should be.
    • Charts - Charts package directory.
      • Controls contains controls.
      • Core contains package core files.
      • Forms contains forms.
      • Interfaces contains common interfaces.
      • Package contains description of all package entities for the Form Builder.
        • Controls contains descriptions of controls.
        • Core contains some common code.
        • Forms contains descrptions of forms.
        • Interfaces contains interfaces of new properties.
        • Properties contains new properties.
        • PropertyHandlers contains implementation of property handlers.
    • OpenGL - OpenGL package directory.
      • Controls contains controls.
      • Core contains package core files.
      • Interfaces contains common interfaces.
      • Package contains description of all package entities for the Form Builder.
        • Controls contains descriptions of controls.
        • Core contains some common code.
        • Interfaces contains interfaces of new properties.
        • Properties contains new properties.
        • PropertyHandlers contains implementation of property handlers.
      • Shaders contains GLSL vertex and fragment shader code.
    • Standard - standard package directory.
      • BuiltInControls - here is all default built-in controls are located.
      • Components contains components.
      • Controls contains controls.
      • Forms contains forms.
      • ListItems contains list items.
      • Package contains description of all package entities for the Form Builder.
        • Components contains descriptions of components.
        • Controls contains descriptions of controls.
        • Core contains some common code.
        • Forms contains descrptions of forms.
        • Interfaces contains interfaces of new properties.
        • ListItems contains descriptions of list items.
        • Properties contains new properties.
        • PropertyHandlers contains implementation of property handlers.
        • Renderers contains descriptions of renderers.
      • Platform contains a platform-specific code.
        • Android contains implementation of platform dependent classes for Android platform.
          • OpenGL contains OpenGL renderer implementation.
        • Base contains implementation of basic common features.
        • Linux contains implementation of platform dependent classes for Linux platform.
        • OpenGL contains OpenGL latest header files.
        • Windows contains Windows operating system specific implementation.
          • OpenGL contains OpenGL renderer implementation.
  • x86 will have 32-bit builds. This folder is created automatically when you build the framework.
    • Debug - here will be built static libraries of the framework core and Standard package after building in Debug x86 configuration.
    • DebugRT - here will be built static libraries of the framework core and Standard package after building in DebugRT x86 configuration. It will also have FormBuilder application.
    • Release - here will be built static libraries of the framework core and Standard package after building in Release x86 configuration.
    • ReleaseRT - here will be built static libraries of the framework core and Standard package after building in ReleaseRT x86 configuration. It will also have FormBuilder application.
  • x64 will have 64-bit builds. This folder is created automatically when you build the framework.
    • Debug - here will be built static libraries of the framework core and Standard package after building in Debug x64 configuration.
    • DebugRT - here will be built static libraries of the framework core and Standard package after building in DebugRT x64 configuration. It will also have FormBuilder application.
    • Release - here will be built static libraries of the framework core and Standard package after building in Release x64 configuration.
    • ReleaseRT - here will be built static libraries of the framework core and Standard package after building in ReleaseRT x64 configuration. It will also have FormBuilder application.
  • ! Output directories for platforms different from Windows(Android, Linux,...) are similar to the two ones above but located inside corresponding to platform directory. For example, Android\ARM\Release is the directory where libraries will be placed after building if you build Android projects with ARM platform and Release configuration selected.

Important note about Packages directory. We recommend install a source code of packages here but it is not mandatory. Packages may also be installed in their own directories. In this case you will need to add those directories to your project include pathes or to include them by absolute path(which is a bad idea).

Dependencies

The Android part of the project depends on several third-party libraries which are placed inside Dependencies directory. They are

  • FreeType library used for loading fonts.
  • libjpeg library used for loading JPEG images.
  • libpng library used for loading PNG images.