Program Listing for File igpa-shim-loader.h

Return to documentation for file (include\igpa-shim-loader\igpa-shim-loader.h)

/******************************************************************************
(c) Intel Corporation

SPDX-License-Identifier: MIT

******************************************************************************/

#pragma once
#include "igpa-config.h"

#include "utility/hook-api-flags.h"

#include <memory>


struct IGPA
{
    enum class Result {
        Ok,
        NotSupported,
        Failed
    };

    virtual void SetHookApiMask(gpa::utility::HookApiFlags mask) = 0;

    virtual void AddLayer(char const* layerName) = 0;

    virtual void AddLayerParameter(char const* layerName, char const* parameterKey, char const* parameterValue) = 0;

    virtual Result Initialize() = 0;

    virtual void TriggerStreamCapture() = 0;

    virtual void Release() = 0;
};

GPA_EXPORT IGPA* GetGPAInterface(const std::string& gpaBinaryPath);

typedef IGPA* (*PFN_GetGPAInterface)(const std::string&);