aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-08-31 02:59:51 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-08-31 02:59:51 +0000
commit966258dd4ca61e0fc632dba295cd0ced1ad0364e (patch)
treecf193ff2255ededefe07caaca768014c6de2eaa8 /lib
parent4463392a68b1ed6230640c78e38394c99f714c9a (diff)
downloadenigma2-966258dd4ca61e0fc632dba295cd0ced1ad0364e.tar.gz
enigma2-966258dd4ca61e0fc632dba295cd0ced1ad0364e.zip
- disable console, remove ancient calls, add vsync and setoffset calls
Diffstat (limited to 'lib')
-rw-r--r--lib/gdi/fb.cpp65
-rw-r--r--lib/gdi/fb.h8
2 files changed, 23 insertions, 50 deletions
diff --git a/lib/gdi/fb.cpp b/lib/gdi/fb.cpp
index 38ae37dd..4a801bfe 100644
--- a/lib/gdi/fb.cpp
+++ b/lib/gdi/fb.cpp
@@ -10,6 +10,11 @@
#include <lib/base/econfig.h>
#include <lib/gdi/fb.h>
+#ifndef FBIO_WAITFORVSYNC
+#define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)
+#endif
+
+
fbClass *fbClass::instance;
fbClass *fbClass::getInstance()
@@ -59,7 +64,7 @@ fbClass::fbClass(const char *fb)
goto nolfb;
}
-// showConsole(0);
+ showConsole(0);
return;
nolfb:
lfb=0;
@@ -84,7 +89,7 @@ int fbClass::showConsole(int state)
int fbClass::SetMode(unsigned int nxRes, unsigned int nyRes, unsigned int nbpp)
{
screeninfo.xres_virtual=screeninfo.xres=nxRes;
- screeninfo.yres_virtual=screeninfo.yres=nyRes;
+ screeninfo.yres_virtual=(screeninfo.yres=nyRes)*2;
screeninfo.height=0;
screeninfo.width=0;
screeninfo.xoffset=screeninfo.yoffset=0;
@@ -115,6 +120,19 @@ int fbClass::SetMode(unsigned int nxRes, unsigned int nyRes, unsigned int nbpp)
return 0;
}
+int fbClass::setOffset(int off)
+{
+ screeninfo.xoffset = 0;
+ screeninfo.yoffset = off;
+ return ioctl(fd, FBIOPAN_DISPLAY, &screeninfo);
+}
+
+int fbClass::waitVSync()
+{
+ int c = 0;
+ return ioctl(fd, FBIO_WAITFORVSYNC, &c);
+}
+
fbClass::~fbClass()
{
if (available)
@@ -129,49 +147,6 @@ int fbClass::PutCMAP()
return ioctl(fd, FBIOPUTCMAP, &cmap);
}
-void fbClass::Box(int x, int y, int width, int height, int color, int backcolor)
-{
- if (width<=2 || locked)
- return;
- int offset=y*stride+x/2;
- int first=0xF0|((color&0xF0)>>4);
- int last= 0xF0|((backcolor&0xF0)>>4);
- color=(color&0xF)*0x11;
- int halfwidth=width/2;
- for (int ay=y; ay<(y+height); ay++)
- {
- lfb[offset]=first;
- memset(lfb+offset+1, color, halfwidth-2);
- lfb[offset+halfwidth-1]=last;
- offset+=stride;
- }
-}
-
-void fbClass::NBox(int x, int y, int width, int height, int color)
-{
- if (locked)
- return;
- int offset=y*stride+x/2;
- int halfwidth=width/2;
- for (int ay=y; ay<(y+height); ay++)
- {
- memset(lfb+offset, color, halfwidth);
- offset+=stride;
- }
-}
-
-void fbClass::VLine(int x, int y, int sy, int color)
-{
- if (locked)
- return;
- int offset=y*stride+x/2;
- while (sy--)
- {
- lfb[offset]=color;
- offset+=stride;
- }
-}
-
int fbClass::lock()
{
if (locked)
diff --git a/lib/gdi/fb.h b/lib/gdi/fb.h
index ab801662..f29c8595 100644
--- a/lib/gdi/fb.h
+++ b/lib/gdi/fb.h
@@ -14,11 +14,14 @@ class fbClass
__u16 red[256], green[256], blue[256], trans[256];
static fbClass *instance;
int locked;
+
public:
unsigned char *lfb;
int showConsole(int state);
int SetMode(unsigned int xRes, unsigned int yRes, unsigned int bpp);
int Available() { return available; }
+ int setOffset(int off);
+ int waitVSync();
unsigned int Stride() { return stride; }
fb_cmap *CMAP() { return &cmap; }
@@ -30,11 +33,6 @@ public:
// low level gfx stuff
int PutCMAP();
- // gfx stuff (colors are 8bit!)
- void Box(int x, int y, int width, int height, int color, int backcolor=0);
- void NBox(int x, int y, int width, int height, int color);
- void VLine(int x, int y, int sy, int color);
-
int lock();
void unlock();
int islocked() { return locked; }