#include <java/io/ByteArrayInputStream.h>
#include <java/lang/RuntimeException.h>
#include <org/xwt/plat/GCJ.h>
-#include <org/xwt/plat/GCJ$JPEG.h>
typedef struct {
struct jpeg_source_mgr pub;
+ /* FIXME
org::xwt::plat::GCJ$JPEG* myself;
+ */
} source_manager;
void jpeg_error_handler (j_common_ptr cinfo) {
void init_source (j_decompress_ptr cinfo) { }
boolean fill_input_buffer (j_decompress_ptr cinfo) {
+ /* FIXME
source_manager* src = (source_manager*)cinfo->src;
jint nbytes = src->myself->is->read(src->myself->buffer, 0, INPUT_BUF_SIZE);
if (nbytes <= 0) {
}
src->pub.next_input_byte = (JOCTET*)elements(src->myself->buffer);
src->pub.bytes_in_buffer = nbytes;
+ */
return 1;
}
}
}
-org::xwt::Picture* org::xwt::plat::GCJ$JPEG::_decodeJPEG(java::io::InputStream* is, jstring name) {
+org::xwt::Picture* org::xwt::plat::GCJ::_decodeJPEG(java::io::InputStream* is, jstring name) {
struct jpeg_decompress_struct cinfo;
- jIntArray data;
+ jintArray data;
jint width;
jint height;
jpeg_create_decompress(&cinfo);
try {
source_manager src;
+ /*
buffer = JvNewByteArray(INPUT_BUF_SIZE);
+ */
src.pub.init_source = init_source;
src.pub.fill_input_buffer = fill_input_buffer;
src.pub.skip_input_data = skip_input_data;
src.pub.resync_to_restart = jpeg_resync_to_restart;
src.pub.term_source = term_source;
+ /*
src.myself = this;
src.pub.next_input_byte = (JOCTET*)elements(buffer);
+ */
src.pub.bytes_in_buffer = 0;
cinfo.src = (jpeg_source_mgr*)&src;
XFillRectangle(display, (*((Pixmap*)pm)), (*((GC*)gc)), x, y, w, h);
}
-void org::xwt::plat::X11$X11PixelBuffer::drawString(::java::lang::String* font, ::java::lang::String* text, jint x, jint y, jint argb) {
-
- XRectangle rect;
- rect.x = clipx, rect.y = clipy; rect.width = clipw; rect.height = cliph;
- XSetClipMask(display, (*((GC*)clipped_gc)), None);
- XSetClipRectangles(display, (*((GC*)clipped_gc)), 0, 0, &rect, 1, YSorted);
- XSetForeground(display, (*((GC*)clipped_gc)),
- ((((argb & 0x00FF0000) >> 16) * colormap_info->red_max) / 0xFF) * colormap_info->red_mult +
- ((((argb & 0x0000FF00) >> 8) * colormap_info->green_max) / 0xFF) * colormap_info->green_mult +
- ((((argb & 0x000000FF)) * colormap_info->blue_max) / 0xFF) * colormap_info->blue_mult +
- colormap_info->base_pixel
- );
-
- // Grab the string
- int len = min(1024, JvGetStringUTFLength(text));
- char buf[len + 1];
- JvGetStringUTFRegion(text, 0, len, buf);
- buf[len] = '\0';
-
- // Build the XTextItem structure
- XTextItem textitem;
- textitem.chars = buf;
- textitem.nchars = len;
- textitem.delta = 0;
- textitem.font = ((XFontStruct*)org::xwt::plat::X11::fontToXFont(font))->fid;
-
- // Draw the text
- XDrawText(display, (*((Pixmap*)pm)), (*((GC*)clipped_gc)), x, y, &textitem, 1);
-}
-
// X11Surface //////////////////////////////////////////////////////////////////////
org::xwt::util::Log::log(this->getClass(), JvNewStringLatin1(buf));
}
-JArray<java::lang::String*>* org::xwt::plat::X11::listNativeFonts() {
- int numfonts;
- char** xfonts = XListFonts(display, "-*-*-*-*-normal-*-*-*-*-*-*-*-*-*", 0xFFFFFFFF, &numfonts);
- JArray<java::lang::String*>* fonts = (JArray<java::lang::String*>*)JvNewObjectArray(numfonts, &(::java::lang::String::class$), NULL);
- java::lang::String** jfonts = (java::lang::String**)(elements(fonts));
- for(int i=0; i<numfonts; i++)
- jfonts[i] = JvNewStringLatin1(xfonts[i], strlen(xfonts[i]));
- return fonts;
-}
-
-gnu::gcj::RawData* org::xwt::plat::X11::fontStringToStruct(jstring s) {
- int len = min(1024, JvGetStringUTFLength(s));
- char buf[len + 1];
- JvGetStringUTFRegion(s, 0, len, buf);
- buf[len] = '\0';
- return (gnu::gcj::RawData*)XLoadQueryFont(display, buf);
-}
-
-jint org::xwt::plat::X11::_getMaxAscent(::java::lang::String* font) { return ((XFontStruct*)fontToXFont(font))->max_bounds.ascent; }
-jint org::xwt::plat::X11::_getMaxDescent(::java::lang::String* font) { return ((XFontStruct*)fontToXFont(font))->max_bounds.descent; }
-jint org::xwt::plat::X11::_stringWidth(::java::lang::String* font, ::java::lang::String* text) {
- if (text == NULL) return 0;
- int len = JvGetStringUTFLength(text);
- char buf[len + 1];
- JvGetStringUTFRegion(text, 0, len, buf);
- buf[len] = '\0';
- return XTextWidth((XFontStruct*)fontToXFont(font), buf, len);
-}
//////////////////////////////////////////////////////////////////////////////