aboutsummaryrefslogtreecommitdiffstats
path: root/w3mimg
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--w3mimg/fb/fb.c443
-rw-r--r--w3mimg/fb/fb.h10
-rw-r--r--w3mimg/fb/fb_img.c8
-rw-r--r--w3mimg/fb/fb_img.h3
4 files changed, 18 insertions, 446 deletions
diff --git a/w3mimg/fb/fb.c b/w3mimg/fb/fb.c
index 8759f61..a92e585 100644
--- a/w3mimg/fb/fb.c
+++ b/w3mimg/fb/fb.c
@@ -1,4 +1,4 @@
-/* $Id: fb.c,v 1.7 2002/09/09 14:03:45 ukai Exp $ */
+/* $Id: fb.c,v 1.8 2002/10/10 16:16:00 ukai Exp $ */
/**************************************************************************
fb.c 0.3 Copyright (C) 2002, hito
**************************************************************************/
@@ -287,51 +287,6 @@ fb_image_draw(FB_IMAGE * image, int x, int y, int sx, int sy, int width,
}
void
-fb_image_rotate(FB_IMAGE * image, int direction)
-{
- unsigned char *src, *dest, *tmp;
- int x, y, i, ofst;
-
- if (image == NULL)
- return;
-
- tmp = malloc(image->len);
- if (tmp == NULL)
- return;
-
- src = image->data;
- dest = tmp;
-
- if (direction) {
- int ofst2 = image->rowstride * (image->height - 1);
- for (x = 0; x < image->rowstride; x += pixel_size) {
- ofst = ofst2 + x;
- for (y = image->height - 1; y >= 0; y--) {
- memcpy(dest, src + ofst, pixel_size);
- dest += pixel_size;
- ofst -= image->rowstride;
- }
- }
- }
- else {
- for (x = image->rowstride - pixel_size; x >= 0; x -= pixel_size) {
- ofst = x;
- for (y = 0; y < image->height; y++) {
- memcpy(dest, src + ofst, pixel_size);
- dest += pixel_size;
- ofst += image->rowstride;
- }
- }
- }
- memcpy(src, tmp, image->len);
- i = image->width;
- image->width = image->height;
- image->height = i;
- image->rowstride = image->width * pixel_size;
- free(tmp);
-}
-
-void
fb_image_copy(FB_IMAGE * dest, FB_IMAGE * src)
{
if (dest == NULL || src == NULL)
@@ -391,94 +346,6 @@ fb_frame_free(FB_IMAGE ** frame)
free(frame);
}
-void
-fb_frame_rotate(FB_IMAGE ** frame, int direction)
-{
- int i, n;
-
- n = frame[0]->num;
- for (i = 0; i < n; i++) {
- fb_image_rotate(frame[i], direction);
- }
-}
-
-void
-fb_pset(int x, int y, int r, int g, int b)
-{
- unsigned long work;
- int offset;
-
- if (is_open != TRUE || x >= vscinfo.xres || y >= vscinfo.yres)
- return;
-
- offset = fscinfo.line_length * y + pixel_size * x;
-
- if (offset >= fscinfo.smem_len)
- return;
-
- if (pixel_size == 1) {
- work = fb_get_cmap_index(r, g, b);
- }
- else {
- work =
- ((r >> (CHAR_BIT - vscinfo.red.length)) << vscinfo.red.offset) +
- ((g >> (CHAR_BIT - vscinfo.green.length)) << vscinfo.green.
- offset) +
- ((b >> (CHAR_BIT - vscinfo.blue.length)) << vscinfo.blue.offset);
- }
- memcpy(buf + offset, &work, pixel_size);
-}
-
-int
-fb_get_color(int x, int y, int *r, int *g, int *b)
-{
- unsigned long work = 0;
- int offset;
-
- if (is_open != TRUE || x >= vscinfo.xres || y >= vscinfo.yres)
- return 1;
-
- offset = fscinfo.line_length * y + pixel_size * x;
-
- if (offset >= fscinfo.smem_len)
- return 1;
-
- memcpy(&work, buf + offset, pixel_size);
-
- if (pixel_size == 1) {
- if (cmap == NULL)
- return 1;
- if (cmap->red)
- *r = *(cmap->red + work) >> CHAR_BIT;
- if (cmap->green)
- *g = *(cmap->green + work) >> CHAR_BIT;
- if (cmap->blue)
- *b = *(cmap->blue + work) >> CHAR_BIT;
- }
- else {
- *r = ((work >> vscinfo.red.
- offset) & (0x000000ff >> (CHAR_BIT - vscinfo.red.length)))
- << (CHAR_BIT - vscinfo.red.length);
- *g = ((work >> vscinfo.green.
- offset) & (0x000000ff >> (CHAR_BIT - vscinfo.green.length)))
- << (CHAR_BIT - vscinfo.green.length);
- *b = ((work >> vscinfo.blue.
- offset) & (0x000000ff >> (CHAR_BIT - vscinfo.blue.length)))
- << (CHAR_BIT - vscinfo.blue.length);
- }
- return 0;
-}
-
-void
-fb_clear(void)
-{
- if (is_open != TRUE)
- return;
-
- memset(buf, 0,
- (vscinfo.xres * vscinfo.yres * vscinfo.bits_per_pixel) / CHAR_BIT);
-}
-
int
fb_width(void)
{
@@ -497,270 +364,6 @@ fb_height(void)
return vscinfo.yres;
}
-void
-fb_cmap_disp(void)
-{
- int lp;
-
- if (is_open != TRUE)
- return;
-
- printf("cmap DUMP\n");
- printf("start :[%08x]\n", cmap->start);
- printf("len :[%08x]\n", cmap->len);
- printf("red :[%8p]\n", cmap->red);
- if (cmap->red) {
- for (lp = 0; lp < cmap->len; lp++) {
- if ((lp + 1) % 16 == 0)
- printf("%04x\n", *(cmap->red + lp));
- else
- printf("%04x ", *(cmap->red + lp));
- }
- if (lp % 16)
- printf("\n");
- }
- printf("green :[%8p]\n", cmap->green);
- if (cmap->green) {
- for (lp = 0; lp < cmap->len; lp++) {
- if ((lp + 1) % 16 == 0)
- printf("%04x\n", *(cmap->green + lp));
- else
- printf("%04x ", *(cmap->green + lp));
- }
- if (lp % 16)
- printf("\n");
- }
- printf("blue :[%8p]\n", cmap->blue);
- if (cmap->blue) {
- for (lp = 0; lp < cmap->len; lp++) {
- if ((lp + 1) % 16 == 0)
- printf("%04x\n", *(cmap->blue + lp));
- else
- printf("%04x ", *(cmap->blue + lp));
- }
- if (lp % 16)
- printf("\n");
- }
- printf("transp :[%8p]\n", cmap->transp);
- if (cmap->transp) {
- for (lp = 0; lp < cmap->len; lp++) {
- if ((lp + 1) % 16 == 0)
- printf("%04x\n", *(cmap->transp + lp));
- else
- printf("%04x ", *(cmap->transp + lp));
- }
- if (lp % 16)
- printf("\n");
- }
- return;
-}
-
-
-void
-fb_fscrn_disp(void)
-{
- if (is_open != TRUE)
- return;
-
- printf("scinfo[%8p] DUMP\n", &fscinfo);
- printf("id :[%s]\n", fscinfo.id);
- printf("smem_start :[%08lx]\n", fscinfo.smem_start);
- printf("smem_len :[%d]\n", fscinfo.smem_len);
- printf("type :[%d] ", fscinfo.type);
- switch (fscinfo.type) {
- case FB_TYPE_PACKED_PIXELS:
- printf("FB_TYPE_PACKED_PIXELS\n");
- break;
- case FB_TYPE_PLANES:
- printf("FB_TYPE_PLANES\n");
- break;
- case FB_TYPE_INTERLEAVED_PLANES:
- printf("FB_TYPE_INTERLEAVED_PLANES\n");
- break;
- case FB_TYPE_TEXT:
- printf("FB_TYPE_TEXT\n");
- break;
- default:
- printf("Unknown type.\n");
- }
- printf("type_aux :[%d] ", fscinfo.type_aux);
- switch (fscinfo.type_aux) {
- case FB_AUX_TEXT_MDA:
- printf("FB_AUX_TEXT_MDA\n");
- break;
- case FB_AUX_TEXT_CGA:
- printf("FB_AUX_TEXT_CGA\n");
- break;
- case FB_AUX_TEXT_S3_MMIO:
- printf("FB_AUX_TEXT_S3_MMIO\n");
- break;
- case FB_AUX_TEXT_MGA_STEP16:
- printf("FB_AUX_TEXT_MGA_STEP16\n");
- break;
- case FB_AUX_TEXT_MGA_STEP8:
- printf("FB_AUX_TEXT_MGA_STEP8\n");
- break;
- default:
- printf("Unknown type_aux.\n");
- }
- printf("visual :[%d] ", fscinfo.visual);
- switch (fscinfo.visual) {
- case FB_VISUAL_MONO01:
- printf("FB_VISUAL_MONO01\n");
- break;
- case FB_VISUAL_MONO10:
- printf("FB_VISUAL_MONO10\n");
- break;
- case FB_VISUAL_TRUECOLOR:
- printf("FB_VISUAL_TRUECOLOR\n");
- break;
- case FB_VISUAL_PSEUDOCOLOR:
- printf("FB_VISUAL_PSEUDOCOLOR\n");
- break;
- case FB_VISUAL_DIRECTCOLOR:
- printf("FB_VISUAL_DIRECTCOLOR\n");
- break;
- case FB_VISUAL_STATIC_PSEUDOCOLOR:
- printf("FB_VISUAL_STATIC_PSEUDOCOLOR\n");
- break;
- default:
- printf("Unknown Visual mode.\n");
- }
- printf("xpanstep :[%d]\n", fscinfo.xpanstep);
- printf("ypanstep :[%d]\n", fscinfo.ypanstep);
- printf("ywrapstep :[%d]\n", fscinfo.ywrapstep);
- printf("line_length :[%d]\n", fscinfo.line_length);
- printf("mmio_start :[%08lx]\n", fscinfo.mmio_start);
- printf("mmio_len :[%d]\n", fscinfo.mmio_len);
- printf("accel :[%d] ", fscinfo.accel);
- switch (fscinfo.accel) {
- case FB_ACCEL_NONE:
- printf("FB_ACCEL_NONE\n");
- break;
- case FB_ACCEL_ATARIBLITT:
- printf("FB_ACCEL_ATARIBLITT\n");
- break;
- case FB_ACCEL_AMIGABLITT:
- printf("FB_ACCEL_AMIGABLITT\n");
- break;
- case FB_ACCEL_S3_TRIO64:
- printf("FB_ACCEL_S3_TRIO64\n");
- break;
- case FB_ACCEL_NCR_77C32BLT:
- printf("FB_ACCEL_NCR_77C32BLT\n");
- break;
- case FB_ACCEL_S3_VIRGE:
- printf("FB_ACCEL_S3_VIRGE\n");
- break;
- case FB_ACCEL_ATI_MACH64GX:
- printf("FB_ACCEL_ATI_MACH64GX\n");
- break;
- case FB_ACCEL_DEC_TGA:
- printf("FB_ACCEL_DEC_TGA\n");
- break;
- case FB_ACCEL_ATI_MACH64CT:
- printf("FB_ACCEL_ATI_MACH64CT\n");
- break;
- case FB_ACCEL_ATI_MACH64VT:
- printf("FB_ACCEL_ATI_MACH64VT\n");
- break;
- case FB_ACCEL_ATI_MACH64GT:
- printf("FB_ACCEL_ATI_MACH64GT\n");
- break;
- case FB_ACCEL_SUN_CREATOR:
- printf("FB_ACCEL_SUN_CREATOR\n");
- break;
- case FB_ACCEL_SUN_CGSIX:
- printf("FB_ACCEL_SUN_CGSIX\n");
- break;
- case FB_ACCEL_SUN_LEO:
- printf("FB_ACCEL_SUN_LEO\n");
- break;
- case FB_ACCEL_IMS_TWINTURBO:
- printf("FB_ACCEL_IMS_TWINTURBO\n");
- break;
- case FB_ACCEL_3DLABS_PERMEDIA2:
- printf("FB_ACCEL_3DLABS_PERMEDIA2\n");
- break;
- case FB_ACCEL_MATROX_MGA2064W:
- printf("FB_ACCEL_MATROX_MGA2064W\n");
- break;
- case FB_ACCEL_MATROX_MGA1064SG:
- printf("FB_ACCEL_MATROX_MGA1064SG\n");
- break;
- case FB_ACCEL_MATROX_MGA2164W:
- printf("FB_ACCEL_MATROX_MGA2164W\n");
- break;
- case FB_ACCEL_MATROX_MGA2164W_AGP:
- printf("FB_ACCEL_MATROX_MGA2164W_AGP\n");
- break;
- case FB_ACCEL_MATROX_MGAG100:
- printf("FB_ACCEL_MATROX_MGAG100\n");
- break;
- case FB_ACCEL_MATROX_MGAG200:
- printf("FB_ACCEL_MATROX_MGAG200\n");
- break;
- case FB_ACCEL_SUN_CG14:
- printf("FB_ACCEL_SUN_CG14\n");
- break;
- case FB_ACCEL_SUN_BWTWO:
- printf("FB_ACCEL_SUN_BWTWO\n");
- break;
- case FB_ACCEL_SUN_CGTHREE:
- printf("FB_ACCEL_SUN_CGTHREE\n");
- break;
- case FB_ACCEL_SUN_TCX:
- printf("FB_ACCEL_SUN_TCX\n");
- break;
- default:
- printf("Unknown Visual mode.\n");
- }
- return;
-}
-
-void
-fb_vscrn_disp(void)
-{
- if (is_open != TRUE)
- return;
- printf("vscinfo DUMP\n");
- printf("xres :[%d]\n", vscinfo.xres);
- printf("yres :[%d]\n", vscinfo.yres);
- printf("xres_virtual :[%d]\n", vscinfo.xres_virtual);
- printf("yres_virtual :[%d]\n", vscinfo.yres_virtual);
- printf("xoffset :[%d]\n", vscinfo.xoffset);
- printf("yoffset :[%d]\n", vscinfo.yoffset);
- printf("bits_per_pixel :[%d]\n", vscinfo.bits_per_pixel);
- printf("grayscale :[%d]\n", vscinfo.grayscale);
- printf("red.offset :[%d]\n", vscinfo.red.offset);
- printf("red.length :[%d]\n", vscinfo.red.length);
- printf("red.msb_right :[%d]\n", vscinfo.red.msb_right);
- printf("green.offset :[%d]\n", vscinfo.green.offset);
- printf("green.length :[%d]\n", vscinfo.green.length);
- printf("green.msb_right :[%d]\n", vscinfo.green.msb_right);
- printf("blue.offset :[%d]\n", vscinfo.blue.offset);
- printf("blue.length :[%d]\n", vscinfo.blue.length);
- printf("blue.msb_right :[%d]\n", vscinfo.blue.msb_right);
- printf("transp.offset :[%d]\n", vscinfo.transp.offset);
- printf("transp.length :[%d]\n", vscinfo.transp.length);
- printf("transp.msb_right:[%d]\n", vscinfo.transp.msb_right);
- printf("nonstd :[%d]\n", vscinfo.nonstd);
- printf("activate :[%d]\n", vscinfo.activate);
- printf("height :[%d]\n", vscinfo.height);
- printf("width :[%d]\n", vscinfo.width);
- printf("accel_flags :[%d]\n", vscinfo.accel_flags);
- printf("pixclock :[%d]\n", vscinfo.pixclock);
- printf("left_margin :[%d]\n", vscinfo.left_margin);
- printf("right_margin :[%d]\n", vscinfo.right_margin);
- printf("upper_margin :[%d]\n", vscinfo.upper_margin);
- printf("lower_margin :[%d]\n", vscinfo.lower_margin);
- printf("hsync_len :[%d]\n", vscinfo.hsync_len);
- printf("vsync_len :[%d]\n", vscinfo.vsync_len);
- printf("sync :[%d]\n", vscinfo.sync);
- printf("vmode :[%d]\n", vscinfo.vmode);
- return;
-}
-
/********* static functions **************/
static
int
@@ -851,13 +454,12 @@ fb_cmap_init(void)
}
/*
- * (struct fb_cmap)デバイスに依存しないカラーマップ情報
+ * (struct fb_cmap) Device independent colormap information.
*
- * fb_cmap_create() 新規のカラーマップ情報
- * fb_cmap_destroy() カラーマップ情報の破棄
- * fb_cmap_disp() 情報の表示
- * fb_cmap_get() 情報の獲得
- * fb_cmap_set() 情報の設定
+ * fb_cmap_create() create colormap information
+ * fb_cmap_destroy() destroy colormap information
+ * fb_cmap_get() get information
+ * fb_cmap_set() set information
*/
#define LUT_MAX (256)
@@ -869,7 +471,7 @@ fb_cmap_create(struct fb_fix_screeninfo *fscinfo,
struct fb_cmap *cmap;
int cmaplen = LUT_MAX;
- /* カラーマップの存在チェック */
+ /* check the existence of colormap */
if (fscinfo->visual == FB_VISUAL_MONO01 ||
fscinfo->visual == FB_VISUAL_MONO10 ||
fscinfo->visual == FB_VISUAL_TRUECOLOR)
@@ -882,7 +484,7 @@ fb_cmap_create(struct fb_fix_screeninfo *fscinfo,
}
memset(cmap, 0, sizeof(struct fb_cmap));
- /* 各分色が存在しそうだったらカラーマップ用の領域を確保 */
+ /* Allocates memory for a colormap */
if (vscinfo->red.length) {
cmap->red = (__u16 *) malloc(sizeof(__u16) * cmaplen);
if (!cmap->red) {
@@ -962,10 +564,10 @@ fb_cmap_set(int fbfp, struct fb_cmap *cmap)
}
/*
- * フレームバッファに対するアクセス
+ * access to framebuffer
*
- * fb_mmap() フレームバッファのメモリ上へのマップ
- * fb_munmap() フレームバッファのメモリ上からのアンマップ
+ * fb_mmap() map from framebuffer into memory
+ * fb_munmap() deletes the mappings
*/
static void *
@@ -989,10 +591,9 @@ fb_munmap(void *buf, struct fb_fix_screeninfo *scinfo)
}
/*
- * (struct fb_fix_screeninfo)デバイスに依存しない固定された情報
+ * (struct fb_fix_screeninfo) device independent fixed information
*
- * fb_fscrn_disp() 情報の表示
- * fb_fscrn_get() 情報の獲得
+ * fb_fscrn_get() get information
*/
static int
fb_fscrn_get(int fbfp, struct fb_fix_screeninfo *scinfo)
@@ -1005,11 +606,9 @@ fb_fscrn_get(int fbfp, struct fb_fix_screeninfo *scinfo)
}
/*
- * (struct fb_var_screeninfo)デバイスに依存しない変更可能な情報
+ * (struct fb_var_screeninfo) device independent variable information
*
- * fb_vscrn_disp() 情報の表示
- * fb_vscrn_get() 情報の獲得
- * fb_vscrn_set() 情報の設定
+ * fb_vscrn_get() get information
*/
static int
fb_vscrn_get(int fbfp, struct fb_var_screeninfo *scinfo)
@@ -1020,15 +619,3 @@ fb_vscrn_get(int fbfp, struct fb_var_screeninfo *scinfo)
}
return 0;
}
-
-#if 0
-static int
-fb_vscrn_set(int fbfp, struct fb_var_screeninfo *scinfo)
-{
- if (ioctl(fbfp, FBIOPUT_VSCREENINFO, scinfo)) {
- perror("ioctl FBIOPUT_VSCREENINFO error\n");
- return -1;
- }
- return 0;
-}
-#endif
diff --git a/w3mimg/fb/fb.h b/w3mimg/fb/fb.h
index 77dcd20..bec281d 100644
--- a/w3mimg/fb/fb.h
+++ b/w3mimg/fb/fb.h
@@ -1,4 +1,4 @@
-/* $Id: fb.h,v 1.5 2002/07/29 15:25:37 ukai Exp $ */
+/* $Id: fb.h,v 1.6 2002/10/10 16:16:03 ukai Exp $ */
#ifndef fb_header
#define fb_header
#include <linux/fb.h>
@@ -20,22 +20,14 @@ void fb_image_fill(FB_IMAGE * image, int r, int g, int b);
int fb_image_draw(FB_IMAGE * image, int x, int y, int sx, int sy, int width,
int height);
void fb_image_free(FB_IMAGE * image);
-void fb_image_rotate(FB_IMAGE * image, int direction);
void fb_image_copy(FB_IMAGE * dest, FB_IMAGE * src);
FB_IMAGE **fb_frame_new(int w, int h, int num);
void fb_frame_free(FB_IMAGE ** frame);
-void fb_frame_rotate(FB_IMAGE ** frame, int direction);
int fb_open(void);
void fb_close(void);
-void fb_pset(int x, int y, int r, int g, int b);
-int fb_get_color(int x, int y, int *r, int *g, int *b);
-void fb_clear(void);
int fb_width(void);
int fb_height(void);
-void fb_cmap_disp(void);
-void fb_fscrn_disp(void);
-void fb_vscrn_disp(void);
#endif
diff --git a/w3mimg/fb/fb_img.c b/w3mimg/fb/fb_img.c
index fb1d1d5..aad3847 100644
--- a/w3mimg/fb/fb_img.c
+++ b/w3mimg/fb/fb_img.c
@@ -1,4 +1,4 @@
-/* $Id: fb_img.c,v 1.4 2002/07/22 16:17:32 ukai Exp $ */
+/* $Id: fb_img.c,v 1.5 2002/10/10 16:16:04 ukai Exp $ */
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
@@ -17,12 +17,6 @@ static int bg_r = 0, bg_g = 0, bg_b = 0;
#error no Imlib2 and GdkPixbuf support
#endif
-int
-fb_image_draw_simple(FB_IMAGE * img, int x, int y)
-{
- return fb_image_draw(img, x, y, 0, 0, img->width, img->height);
-}
-
void
fb_image_set_bg(int r, int g, int b)
{
diff --git a/w3mimg/fb/fb_img.h b/w3mimg/fb/fb_img.h
index 772334b..2e64717 100644
--- a/w3mimg/fb/fb_img.h
+++ b/w3mimg/fb/fb_img.h
@@ -1,10 +1,9 @@
-/* $Id: fb_img.h,v 1.5 2002/07/29 15:25:37 ukai Exp $ */
+/* $Id: fb_img.h,v 1.6 2002/10/10 16:16:04 ukai Exp $ */
#ifndef fb_img_header
#define fb_img_header
#include "fb.h"
FB_IMAGE **fb_image_load(char *filename, int w, int h);
-int fb_image_draw_simple(FB_IMAGE * img, int x, int y);
void fb_image_set_bg(int r, int g, int b);
int get_image_size(char *filename, int *w, int *h);