ti83-sdk/tool/tilem-src/emu/graylcd.h

58 lines
2.0 KiB
C

/*
* libtilemcore - Graphing calculator emulation library
*
* Copyright (C) 2010-2011 Benjamin Moody
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef _TILEM_GRAYLCD_H
#define _TILEM_GRAYLCD_H
typedef struct _TilemGrayLCDPixel {
word ndark; /* Sum of lengths of dark intervals */
word nlight; /* Sum of lengths of light intervals */
word ndarkseg; /* Number of dark intervals */
word nlightseg; /* Number of light intervals */
} TilemGrayLCDPixel;
struct _TilemGrayLCD {
TilemCalc *calc; /* Calculator */
int timer_id; /* Screen update timer */
dword lcdupdatetime; /* CPU time of last known LCD update */
dword t; /* Time counter */
int windowsize; /* Number of frames in the sampling
window */
int framenum; /* Current frame number */
int sampleint; /* Microseconds per sample */
int bwidth; /* Width of LCD, bytes */
int height; /* Height of LCD, pixels */
byte *oldbits; /* Original pixel values (current buffer) */
byte *newbits; /* Original pixel values (alternate buffer) */
dword *tchange; /* Time when pixels changed */
dword *tframestart; /* Time at start of frame */
dword *framestamp; /* LCD update time at start of frame */
TilemGrayLCDPixel *curpixels; /* Current pixel counters */
TilemGrayLCDPixel *framebasepixels; /* Pixel counters as of
the start of each
frame */
};
#endif