• Home
  • Knowledge Base
    • Licensing New (VIOSO 6, EXAPLAY)
    • Operation
    • Quality Improvement
    • References
    • Licensing Old (Anyblend, Player)
  • Documentation
    • VIOSO 6
    • VIOSO 6 Integration
    • EXAPLAY
    • VIOSO Core 5
    • VIOSO Anyblend 5
    • VIOSO Anyblend VR&SIM 5
    • VIOSO Integrate 5
    • VIOSO Player 2
  • FAQ
    • Error and other feedback
    • Licensing
    • System & Requirements
  • Videos
  • Home
  • Knowledge Base
    • Licensing New (VIOSO 6, EXAPLAY)
    • Operation
    • Quality Improvement
    • References
    • Licensing Old (Anyblend, Player)
  • Documentation
    • VIOSO 6
    • VIOSO 6 Integration
    • EXAPLAY
    • VIOSO Core 5
    • VIOSO Anyblend 5
    • VIOSO Anyblend VR&SIM 5
    • VIOSO Integrate 5
    • VIOSO Player 2
  • FAQ
    • Error and other feedback
    • Licensing
    • System & Requirements
  • Videos

VIOSO Integrate 5

home/Documentation/VIOSO Integrate 5
Expand All Collapse All
  • VIOSO Integrate Overview
  • VIOSO Integrate VS Integrate Plus
  • Media Playback Solutions
    • AV Stumpfl Pixera
      • Running Pixera Autocal standalone
      • UV-Mapping and 3D calibration
      • Multi-client setups
    • Vertex VIOSO & IOVERSAL Vertex
      • AutoCal Single Camera: Getting started
      • Modifying, Optimizing and Recalibration
      • Using Autocal Standalone
  • Dome- and Planetarium Solutions
  • 3D Engines
    • Unity Plugin
    • Unreal Engine Integration
      • Examples: UE4.24-.26
      • Examples: UE4.27 & UE5
    • MiddleVR Integration
  • Simulators
    • SILAB
    • Quantum 3D: Mantis
    • AVSimulation: SCANeR Studio
    • rFpro
    • Prepar3D
    • X-Plane 11
  • Projector Integration
  • VIOSO WarpBlend API
    • API usage on Windows
    • API usage on Linux
    • Implementation Remarks
    • VIOSOWarpBlend.ini Reference
    • API Examples
      • Example 1 - Simulator with moving platform
      • Example 2 - Another simulator with moving platform
      • Example 3 – Cave
      • Example 4 – Video player

API usage on Windows

520 views 0

Emanuel
October 6, 2020

Table of Contents

  • Static binding
    • 2 Dynamic binding
    • 2a use wrapper from VIOSOWarpBlend
    • 2b via header:
    • 2c Single file:

Static binding

Having VIOSOWarpBlend next to your executable or in added to %path%: link against VIOSOWarpBlend.lib and, in your [precompiled] header.

#include "VIOSOWarpBlend.h"

2 Dynamic binding

2a use wrapper from VIOSOWarpBlend

declaration:

#include "../../Include/VIOSOWarpBlend.hpp"
const char* s_configFile = "VIOSOWarpBlendGL.ini";
std::shared_ptr<VWB> pWarper;

initialization: (where channel is a string containing the channel name)

try {
    pWarper = std::make_shared<VWB>( "", nullptr, s_configFile, channel.c_str(), 1, "" );
}
catch( VWB_ERROR )
{
    return FALSE;
}
if( VWB_ERROR_NONE != pWarper->Init() )
    return FALSE;

 

pre-render:

float view[16], proj[16];
    float eye[3] = { 0,0,0 };
    float rot[3] = { 0,0,0 };

    pWarper->GetViewProj( eye, rot, view, proj ); // call some of the get frustum functions there are others serving clip coordinates or angles

render: render your scene into FBO / Offscreen RT, attached to texUnwarped

post-render:

pWarper->Render( texUnwarped, VWB_STATEMASK_PIXEL_SHADER | VWB_STATEMASK_SHADER_RESOURCE );

2b via header:

in header declare functions and types:

#define VIOSOWARPBLEND_DYNAMIC_DEFINE
#include "VIOSOWarpBlend.h"

in one file on top, to implement the actual functions/objects

#define VIOSOWARPBLEND_DYNAMIC_IMPLEMENT
#include "VIOSOWarpBlend.h"

in module initialization, this loads function pointers from library

#define VIOSOWARPBLEND_DYNAMIC_INITIALIZE
#include "VIOSOWarpBlend.h"

2c Single file:

in file on top, to declare and implement functions/objects,

#define VIOSOWARPBLEND_DYNAMIC_DEFINE_IMPLEMENT
#include "VIOSOWarpBlend.h"

in module initialization, this loads function pointers from library

#define VIOSOWARPBLEND_DYNAMIC_INITIALIZE
#include "VIOSOWarpBlend.h"

Always make sure to have your platform headers loaded before!

Was this helpful?

Yes  No
Related Articles
  • Examples: UE4.24-.26
  • SILAB
  • Quantum 3D: Mantis
  • VIOSO Integrate Overview
  • Examples: UE4.27 & UE5
  • AVSimulation: SCANeR Studio

Didn't find your answer? Contact Us

Previous
VIOSO WarpBlend API
Next
API usage on Linux
  • Ticket System
  • VIOSO Home
  • Imprint
  • Forum
  • © 2020-now VIOSO GmbH. All Rights Reserved.

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
Do not sell my personal information.
Cookie settingsACCEPT
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT