/// <summary> /// set up callback /// </summary> /// <param name="line">scanline. -1 = end of frame, -2 = RIGHT NOW</param> public void SetScanlineCallback(ScanlineCallback callback, int line) { if (GambatteState == IntPtr.Zero) { return; // not sure how this is being reached. tried the debugger... } endofframecallback = null; if (callback == null || line == -1 || line == -2) { scanlinecb = null; LibGambatte.gambatte_setscanlinecallback(GambatteState, null, 0); if (line == -1) { endofframecallback = callback; } else if (line == -2) { callback(LibGambatte.gambatte_cpuread(GambatteState, 0xff40)); } } else if (line >= 0 && line <= 153) { scanlinecb = delegate { callback(LibGambatte.gambatte_cpuread(GambatteState, 0xff40)); }; LibGambatte.gambatte_setscanlinecallback(GambatteState, scanlinecb, line); } else { throw new ArgumentOutOfRangeException(nameof(line), "line must be in [0, 153]"); } }
public void SetScanlineCallback(ScanlineCallback callback, int line) { _scanlineCallback = callback; _scanlineCallbackLine = line; if (line == -2) { GetGPU(); _scanlineCallback(ppu.LCDC); } }
public static extern void gambatte_setscanlinecallback(IntPtr core, ScanlineCallback callback, int sl);
public static extern void libmeteor_setscanlinecallback(ScanlineCallback callback, int scanline);
public void SetScanlineCallback(ScanlineCallback callback, int line) { _scanlineCallback = callback; _scanlineCallbackLine = line; UpdateCoreScanlineCallback(true); }
public static extern void sameboy_setscanlinecallback(IntPtr core, ScanlineCallback callback, int sl);
public abstract void SetScanlineCallback(ScanlineCallback callback, int ly);
public abstract void sameboy_setscanlinecallback(IntPtr core, ScanlineCallback callback, int sl);
/// <summary> /// set up callback /// </summary> /// <param name="callback"></param> /// <param name="line">scanline. -1 = end of frame, -2 = RIGHT NOW</param> public void SetScanlineCallback(ScanlineCallback callback, int line) { if (GambatteState == IntPtr.Zero) // not sure how this is being reached. tried the debugger... return; endofframecallback = null; if (callback == null || line == -1 || line == -2) { scanlinecb = null; LibGambatte.gambatte_setscanlinecallback(GambatteState, null, 0); if (line == -1) endofframecallback = callback; else if (line == -2) callback(LibGambatte.gambatte_cpuread(GambatteState, 0xff40)); } else if (line >= 0 && line <= 153) { scanlinecb = delegate() { callback(LibGambatte.gambatte_cpuread(GambatteState, 0xff40)); }; LibGambatte.gambatte_setscanlinecallback(GambatteState, scanlinecb, line); } else throw new ArgumentOutOfRangeException("line must be in [0, 153]"); }