4 * Copyright 1999 Patrik Stridvall
14 #include "debugtools.h"
16 DEFAULT_DEBUG_CHANNEL(ttydrv
);
18 /**********************************************************************/
20 extern DeviceCaps TTYDRV_DC_DevCaps
;
22 /***********************************************************************
25 BOOL
TTYDRV_DC_CreateDC(DC
*dc
, LPCSTR driver
, LPCSTR device
,
26 LPCSTR output
, const DEVMODEA
*initData
)
28 TTYDRV_PDEVICE
*physDev
;
31 TRACE("(%p, %s, %s, %s, %p)\n",
32 dc
, debugstr_a(driver
), debugstr_a(device
),
33 debugstr_a(output
), initData
);
35 dc
->physDev
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
,
36 sizeof(TTYDRV_PDEVICE
));
38 ERR("Can't allocate physDev\n");
41 physDev
= (TTYDRV_PDEVICE
*) dc
->physDev
;
43 dc
->w
.devCaps
= &TTYDRV_DC_DevCaps
;
45 if(dc
->w
.flags
& DC_MEMORY
){
46 physDev
->window
= NULL
;
47 physDev
->cellWidth
= 1;
48 physDev
->cellHeight
= 1;
50 TTYDRV_DC_CreateBitmap(dc
->w
.hBitmap
);
51 bmp
= (BITMAPOBJ
*) GDI_GetObjPtr(dc
->w
.hBitmap
, BITMAP_MAGIC
);
53 dc
->w
.bitsPerPixel
= bmp
->bitmap
.bmBitsPixel
;
55 dc
->w
.totalExtent
.left
= 0;
56 dc
->w
.totalExtent
.top
= 0;
57 dc
->w
.totalExtent
.right
= bmp
->bitmap
.bmWidth
;
58 dc
->w
.totalExtent
.bottom
= bmp
->bitmap
.bmHeight
;
59 dc
->w
.hVisRgn
= CreateRectRgnIndirect( &dc
->w
.totalExtent
);
61 GDI_HEAP_UNLOCK( dc
->w
.hBitmap
);
63 physDev
->window
= TTYDRV_GetRootWindow();
64 physDev
->cellWidth
= cell_width
;
65 physDev
->cellHeight
= cell_height
;
67 dc
->w
.bitsPerPixel
= 1;
68 dc
->w
.totalExtent
.left
= 0;
69 dc
->w
.totalExtent
.top
= 0;
70 dc
->w
.totalExtent
.right
= cell_width
* screen_cols
;
71 dc
->w
.totalExtent
.bottom
= cell_height
* screen_rows
;
72 dc
->w
.hVisRgn
= CreateRectRgnIndirect( &dc
->w
.totalExtent
);
78 /***********************************************************************
81 BOOL
TTYDRV_DC_DeleteDC(DC
*dc
)
85 HeapFree( GetProcessHeap(), 0, dc
->physDev
);
91 /***********************************************************************
94 INT
TTYDRV_DC_Escape(DC
*dc
, INT nEscape
, INT cbInput
,
95 SEGPTR lpInData
, SEGPTR lpOutData
)