/openscenegraph-cross-platform-guide-application

Sample application for OpenSceneGraph cross-platform guide

Primary LanguageC++

Table of contents

This is a sample application for OpenSceneGraph cross-platform guide.

It displays provided model with simple GLSL shaders.

The structure contains description and implementation notes for each entity.

  • functions.h file
    • std::string logLevelToString(osg::NotifySeverity severity)
      • Convert OpenSceneGraph logging level to string representation
    • std::string printfString(const char *fmt, ...)
      • Construct a string using printf-like syntax
      • Maximum string length is 1024 bytes long including trailing zero
    • void platformLog(const char *message)
      • Log message using platform specific tools
      • Android uses __android_log_write(ANDROID_LOG_ERROR, "OSG", message)
      • Others use std::cout << message << std::endl
    • void setupCamera(osg::Camera *cam, osg::GraphicsContext *gc, double fovy, int width, int height)
      • Configure camera with common defaults
      • Only used under desktop and iOS
      • TODO Does it make sense to use it for for others?
    • Desktop: osg::GraphicsContext *createGraphicsContext(const std::string &title, int x, int y, int width, int height) / iOS: osg::GraphicsContext *createGraphicsContext(int width, int height, float scale, UIView *parentView)
      • Create graphics context using OpenSceneGraph functionality
      • Only used for desktop and iOS. Android and Web do not use the function, because their graphics contexts are created outside OpenSceneGraph

The full process of building sample application for desktop, mobile, and web is available in OpenSceneGraph cross-platform guide.