BizHawk/BizHawk.Emulation.Cores/Libretro/LibretroApi_Structs.cs

88 lines
2.3 KiB
C#

using System;
using System.Diagnostics;
using System.IO;
using System.IO.Pipes;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.IO.MemoryMappedFiles;
using BizHawk.Common;
namespace BizHawk.Emulation.Cores.Libretro
{
partial class LibretroApi
{
public struct retro_game_geometry
{
public uint base_width;
public uint base_height;
public uint max_width;
public uint max_height;
public float aspect_ratio;
}
public unsafe struct retro_system_info
{
public sbyte* library_name;
public sbyte* library_version;
public sbyte* valid_extensions;
public bool need_fullpath;
public bool block_extract;
short _pad;
}
public struct retro_system_timing
{
public double fps;
public double sample_rate;
}
public struct retro_system_av_info
{
public retro_game_geometry geometry;
public retro_system_timing timing;
}
//untested
public struct retro_perf_counter
{
public string ident;
public ulong start;
public ulong total;
public ulong call_cnt;
[MarshalAs(UnmanagedType.U1)]
public bool registered;
};
//perf callbacks
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate long retro_perf_get_time_usec_t();
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate long retro_perf_get_counter_t();
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate ulong retro_get_cpu_features_t();
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void retro_perf_log_t();
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void retro_perf_register_t(ref retro_perf_counter counter);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void retro_perf_start_t(ref retro_perf_counter counter);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void retro_perf_stop_t(ref retro_perf_counter counter);
public struct retro_perf_callback
{
public IntPtr get_time_usec;
public IntPtr get_cpu_features;
public IntPtr get_perf_counter;
public IntPtr perf_register;
public IntPtr perf_start;
public IntPtr perf_stop;
public IntPtr perf_log;
}
}
}