The Pedigree Project
0.1
|
#include <Vga.h>
Public Member Functions | |
void | initialise () |
virtual bool | setMode (int mode) |
virtual bool | setLargestTextMode () |
virtual bool | isMode (size_t nCols, size_t nRows, bool bIsText, size_t nBpp=0) |
virtual bool | isLargestTextMode () |
virtual size_t | getNumCols () |
virtual size_t | getNumRows () |
virtual void | rememberMode () |
virtual void | restoreMode () |
virtual void | pokeBuffer (uint8_t *pBuffer, size_t nBufLen) |
virtual void | peekBuffer (uint8_t *pBuffer, size_t nBufLen) |
virtual void | moveCursor (size_t nX, size_t nY) |
operator uint16_t * () const | |
Public Member Functions inherited from Vga | |
virtual void | setControl (VgaControl which)=0 |
virtual void | clearControl (VgaControl which)=0 |
Private Member Functions | |
PPCVga (const PPCVga &) | |
PPCVga & | operator= (const PPCVga &) |
void | putChar (char c, int x, int y, unsigned int f, unsigned int b) |
Private Attributes | |
uint16_t | m_pTextBuffer [(MAX_WIDTH/FONT_WIDTH)*(MAX_HEIGHT/FONT_HEIGHT)] |
MemoryRegion | m_Framebuffer |
uint8_t * | m_pFramebuffer |
uint32_t | m_Width |
uint32_t | m_Height |
uint32_t | m_Depth |
uint32_t | m_Stride |
uint32_t | m_pColours [16] |
Additional Inherited Members | |
Public Types inherited from Vga | |
enum | VgaControl { LineGraphics = 2, Blink = 3 } |
Vga device abstraction.
Definition at line 50 of file kernel/machine/ppc_common/Vga.h.
|
inlinevirtual |
Implements Vga.
Definition at line 102 of file kernel/machine/ppc_common/Vga.h.
References m_Width.
|
inlinevirtual |
Implements Vga.
Definition at line 110 of file kernel/machine/ppc_common/Vga.h.
References m_Height.
void PPCVga::initialise | ( | ) |
Definition at line 38 of file kernel/machine/ppc_common/Vga.cc.
References PhysicalMemoryManager::allocateRegion(), PhysicalMemoryManager::continuous, PhysicalMemoryManager::force, OpenFirmware::instance(), PhysicalMemoryManager::instance(), VirtualAddressSpace::KernelMode, X86Vga::m_pFramebuffer, PhysicalMemoryManager::nonRamMemory, MemoryRegion::virtualAddress(), VirtualAddressSpace::Write, and VirtualAddressSpace::WriteThrough.
|
inlinevirtual |
Tests if the current video mode is the largest text mode.
Implements Vga.
Definition at line 94 of file kernel/machine/ppc_common/Vga.h.
|
inlinevirtual |
Tests the current video mode.
Implements Vga.
Definition at line 85 of file kernel/machine/ppc_common/Vga.h.
|
inlinevirtual |
Moves the cursor to the position specified by the parameters.
nX | The column to move to. |
nY | The row to move to. |
Implements Vga.
Definition at line 156 of file kernel/machine/ppc_common/Vga.h.
References m_pTextBuffer.
|
virtual |
Copies the current framebuffer into the given buffer.
The buffer is assumed to be in the correct format for directly copying from video memory. This will obviously depend on the current mode (text/graphical) as well as resolution and bits per pixel (graphics mode only).
A | pointer to the buffer. |
The | length of pBuffer. |
Implements Vga.
Definition at line 160 of file kernel/machine/ppc_common/Vga.cc.
References X86Vga::m_pFramebuffer.
Referenced by restoreMode().
|
virtual |
Copies the given buffer into video memory, replacing the current framebuffer.
The buffer is assumed to be in the correct format for directly copying into video memory. This will obviously depend on the current mode (text/graphical) as well as resolution and bits per pixel (graphics mode only).
pBuffer | A pointer to the buffer to swap into video memory. |
nBufLen | The length of pBuffer. |
Implements Vga.
Definition at line 137 of file kernel/machine/ppc_common/Vga.cc.
Referenced by restoreMode().
|
inlinevirtual |
Stores the current video mode.
Implements Vga.
Definition at line 118 of file kernel/machine/ppc_common/Vga.h.
|
inlinevirtual |
Restores the saved video mode from a rememberMode() call.
Implements Vga.
Definition at line 125 of file kernel/machine/ppc_common/Vga.h.
References peekBuffer(), and pokeBuffer().
|
inlinevirtual |
Sets the largest possible text mode.
Implements Vga.
Definition at line 75 of file kernel/machine/ppc_common/Vga.h.
|
inlinevirtual |
Changes the mode the VGA device is in.
nCols | The number of columns required. |
nRows | The number of rows required. |
bIsText | True if the caller requires a text mode, false if graphical. |
nBpp | Only applicable for graphics modes - the number of bits per pixel. |
Implements Vga.
Definition at line 66 of file kernel/machine/ppc_common/Vga.h.
|
private |
Screen depth - bits per pixel
Definition at line 188 of file kernel/machine/ppc_common/Vga.h.
|
private |
Screen height
Definition at line 186 of file kernel/machine/ppc_common/Vga.h.
Referenced by getNumRows().
|
private |
Colour index table
Definition at line 192 of file kernel/machine/ppc_common/Vga.h.
|
private |
Our real graphics framebuffer
Definition at line 181 of file kernel/machine/ppc_common/Vga.h.
|
private |
We use a 16-bit-per-character text mode buffer to simplify things. BootIO is a bit of a simpleton, really.
Definition at line 174 of file kernel/machine/ppc_common/Vga.h.
Referenced by moveCursor().
|
private |
Stride - number of bytes per row
Definition at line 190 of file kernel/machine/ppc_common/Vga.h.
|
private |
Screen width
Definition at line 184 of file kernel/machine/ppc_common/Vga.h.
Referenced by getNumCols().