X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=android%2Fjwxyz.c;fp=android%2Fjwxyz.c;h=0000000000000000000000000000000000000000;hp=d2ed46c867a292d072e77db11b81bdd2e10072f3;hb=aa75c7476aeaa84cf3abc192b376a8b03c325213;hpb=88cfe534a698a0562e81345957a50714af1453bc diff --git a/android/jwxyz.c b/android/jwxyz.c deleted file mode 100644 index d2ed46c8..00000000 --- a/android/jwxyz.c +++ /dev/null @@ -1,467 +0,0 @@ -/* xscreensaver, Copyright (c) 1991-2015 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* JWXYZ Is Not Xlib. - - But it's a bunch of function definitions that bear some resemblance to - Xlib and that do things that bear some resemblance to the - things that Xlib might have done. - */ - -#include -#include -#include -#include - -#include "jwxyz.h" -#include "jwxyz-timers.h" -#include "yarandom.h" -#include "screenhackI.h" - -typedef signed char BOOL; -#define YES (BOOL)1 -#define NO (BOOL)0 - -struct CGPoint { - float x; - float y; -}; -typedef struct CGPoint CGPoint; - -struct CGSize { - float width; - float height; -}; -typedef struct CGSize CGSize; - -struct CGRect { - CGPoint origin; - CGSize size; -}; -typedef struct CGRect CGRect; - -struct jwxyz_Drawable { - enum { WINDOW, PIXMAP } type; - CGRect frame; - union { - struct { - unsigned long background; - int last_mouse_x, last_mouse_y; - } window; - struct { - int depth; - void *cgc_buffer; - } pixmap; - }; -}; - -struct jwxyz_Display { - Window main_window; - Screen *screen; - int screen_count; - struct jwxyz_sources_data *timers_data; -}; - -struct jwxyz_Screen { - Display *dpy; - Visual *visual; - unsigned long black, white; - int screen_number; -}; - - -Screen * -XDefaultScreenOfDisplay (Display *dpy) -{ - return dpy->screen; -} - -unsigned long -XBlackPixelOfScreen(Screen *screen) -{ - return screen->black; -} - -unsigned long -XWhitePixelOfScreen(Screen *screen) -{ - return screen->white; -} - - -static void draw_rect(Display *, Drawable, GC, - int x, int y, unsigned int width, - unsigned int height, BOOL foreground_p, BOOL fill_p); - -Status -XParseColor(Display * dpy, Colormap cmap, const char *spec, XColor * ret) -{ - unsigned char r = 0, g = 0, b = 0; - if (*spec == '#' && strlen(spec) == 7) { - static unsigned const char hex[] = { // yeah yeah, shoot me. - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, - 0, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; - r = (hex[spec[1]] << 4) | hex[spec[2]]; - g = (hex[spec[3]] << 4) | hex[spec[4]]; - b = (hex[spec[5]] << 4) | hex[spec[6]]; - } else if (!strcasecmp(spec, "black")) { -// r = g = b = 0; - } else if (!strcasecmp(spec, "white")) { - r = g = b = 255; - } else if (!strcasecmp(spec, "red")) { - r = 255; - } else if (!strcasecmp(spec, "green")) { - g = 255; - } else if (!strcasecmp(spec, "blue")) { - b = 255; - } else if (!strcasecmp(spec, "cyan")) { - g = b = 255; - } else if (!strcasecmp(spec, "magenta")) { - r = b = 255; - } else if (!strcasecmp(spec, "yellow")) { - r = g = 255; - } else { - return 0; - } - - ret->red = (r << 8) | r; - ret->green = (g << 8) | g; - ret->blue = (b << 8) | b; - ret->flags = DoRed | DoGreen | DoBlue; - return 1; -} - -Status XAllocColor(Display * dpy, Colormap cmap, XColor * color) -{ - // store 32 bit ARGB in the pixel field. - // (The uint32_t is so that 0xFF000000 doesn't become 0xFFFFFFFFFF000000) - color->pixel = (uint32_t) - ((0xFF << 24) | - (((color->red >> 8) & 0xFF) << 16) | - (((color->green >> 8) & 0xFF) << 8) | - (((color->blue >> 8) & 0xFF))); - return 1; -} - -// needs to be implemented in Android... -int -XFillRectangle(Display * dpy, Drawable d, GC gc, int x, int y, - unsigned int width, unsigned int height) -{ - return 0; -} - -// needs to be implemented in Android... -int -XDrawString(Display * dpy, Drawable d, GC gc, int x, int y, - const char *str, int len) -{ - return 0; // try this for now... -} - - -// needs to be implemented in Android... -int XFreeGC(Display * dpy, GC gc) -{ - return 0; -} - - - -int XFreeFont(Display * dpy, XFontStruct * f) -{ - return 0; -} - -int XFreeFontInfo(char **names, XFontStruct * info, int n) -{ - int i; - if (names) { - for (i = 0; i < n; i++) - if (names[i]) - free(names[i]); - free(names); - } - if (info) { - for (i = 0; i < n; i++) - if (info[i].per_char) - free(info[i].per_char); - free(info); - } - return 0; -} - - -// needs to be implemented in Android... -int XUnloadFont(Display * dpy, Font fid) -{ - return 0; -} - - -// needs to be implemented in Android... -GC -XCreateGC(Display * dpy, Drawable d, unsigned long mask, XGCValues * xgcv) -{ -} - - -// needs to be implemented in Android... -XFontStruct *XLoadQueryFont(Display * dpy, const char *name) -{ -} - - -Status -XGetWindowAttributes(Display * dpy, Window w, XWindowAttributes * xgwa) -{ - -// Assert (w && w->type == WINDOW, "not a window"); - - memset(xgwa, 0, sizeof(*xgwa)); - xgwa->x = w->frame.origin.x; - xgwa->y = w->frame.origin.y; - xgwa->width = w->frame.size.width; - xgwa->height = w->frame.size.height; - xgwa->depth = 32; - xgwa->screen = dpy->screen; - xgwa->visual = dpy->screen->visual; - - return 0; -} - -// needs to be implemented in Android... -int XSetFont(Display * dpy, GC gc, Font fid) -{ - return 0; -} - - -// needs to be implemented in Android... -int XClearWindow(Display * dpy, Window win) -{ -} - -// declared in utils/visual.h -int has_writable_cells(Screen * s, Visual * v) -{ - return 0; -} - -Status -XAllocColorCells(Display * dpy, Colormap cmap, Bool contig, - unsigned long *pmret, unsigned int npl, - unsigned long *pxret, unsigned int npx) -{ - return 0; -} - -int XStoreColors(Display * dpy, Colormap cmap, XColor * colors, int n) -{ - //Assert(0, "XStoreColors called"); - return 0; -} - -int -XFreeColors(Display * dpy, Colormap cmap, unsigned long *px, int npixels, - unsigned long planes) -{ - return 0; -} - -int XFlush(Display * dpy) -{ - return 0; -} - -Display *XDisplayOfScreen(Screen * s) -{ - return s->dpy; -} - -// needs to be implemented in Android... -int -XLookupString(XKeyEvent * e, char *buf, int size, KeySym * k_ret, - XComposeStatus * xc) -{ - return 0; -} - -int XScreenNumberOfScreen(Screen * s) -{ - return s->screen_number; -} - -int jwxyz_ScreenCount(Display * dpy) -{ - return dpy->screen_count; -} - - -/* -// should this be defined? -static Display *jwxyz_live_displays[20] = { 0, }; -*/ - -Display * jwxyz_make_display (void *nsview_arg, void *cgc_arg) -{ - Display *d = (Display *) calloc(1, sizeof(*d)); - d->screen = (Screen *) calloc(1, sizeof(Screen)); - d->screen->dpy = d; - - d->screen_count = 1; - d->screen->screen_number = 0; - d->screen->black = 0xFF000000; - d->screen->white = 0xFFFFFFFF; - - Visual *v = (Visual *) calloc(1, sizeof(Visual)); - v->class = TrueColor; - v->red_mask = 0x00FF0000; - v->green_mask = 0x0000FF00; - v->blue_mask = 0x000000FF; - v->bits_per_rgb = 8; - d->screen->visual = v; - - Window w = (Window) calloc(1, sizeof(*w)); - w->type = WINDOW; - w->window.background = BlackPixelOfScreen(d->screen); - - d->main_window = w; - - return d; -} - -void -jwxyz_free_display (Display *dpy) -{ - free (dpy->screen->visual); - free (dpy->screen); - free (dpy->main_window); - free (dpy); -} - - -/* Call this when the Renderer calls onSurfaceChanged - */ -void -jwxyz_window_resized (Display *dpy, Window w, - int new_x, int new_y, int new_width, int new_height, - void *cgc_arg) -{ - w->frame.origin.x = new_x; - w->frame.origin.y = new_y; - w->frame.size.width = new_width; - w->frame.size.height = new_height; -} - -Window XRootWindow(Display * dpy, int screen) -{ - return dpy->main_window; -} - -/* Handle an abort on Android - TODO: Test that Android handles aborts properly - */ -void -jwxyz_abort (const char *fmt, ...) -{ - char s[10240]; - if (!fmt || !*fmt) - strcpy (s, "abort"); - else - { - va_list args; - va_start (args, fmt); - vsprintf (s, fmt, args); - va_end (args); - } - /* Send error to Android device log */ - __android_log_write(ANDROID_LOG_ERROR, "xscreensaver", s); - - abort(); -} - -Pixmap -XCreatePixmap (Display *dpy, Drawable d, - unsigned int width, unsigned int height, unsigned int depth) -{ -} - -int -XDestroyImage (XImage *ximage) -{ - if (ximage->data) free (ximage->data); - free (ximage); - return 0; -} - -int -XDrawString16 (Display *dpy, Drawable d, GC gc, int x, int y, - const XChar2b *str, int len) -{ -} - -int -XFreePixmap (Display *d, Pixmap p) -{ -} - -XImage * -XGetImage (Display *dpy, Drawable d, int x, int y, - unsigned int width, unsigned int height, - unsigned long plane_mask, int format) -{ -} - -unsigned long -XGetPixel (XImage *ximage, int x, int y) -{ -} - -int -XSetForeground (Display *dpy, GC gc, unsigned long fg) -{ -} - -int -XTextExtents16 (XFontStruct *f, const XChar2b *s, int length, - int *dir_ret, int *ascent_ret, int *descent_ret, - XCharStruct *cs) -{ -} - -int -XPutPixel (XImage *ximage, int x, int y, unsigned long pixel) -{ -} - -XImage * -XCreateImage (Display *dpy, Visual *visual, unsigned int depth, - int format, int offset, char *data, - unsigned int width, unsigned int height, - int bitmap_pad, int bytes_per_line) -{ -}