88 lines
2.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|