<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>jitblt/uchar.k</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -3,6 +3,7 @@
 # The order of these files matters
 JITBLT_SOURCES = \
   super.k \
+	uchar.k \
 	map.k \
 	expression.k \
   operator.k \</diff>
      <filename>jitblt/Makefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,11 @@
-- figure out why I'm making cairo-perf segfault
+- figure out why I'm making cairo-perf segfault (try again now that the
+  bpp problem is solved)
 - figure out what the 'mul' (last arg) part of fbComposeGetStart is for:
   e.g. 'fbComposeGetStart (pDst, xDst, yDst, uint8_t, dstStride, dstLine, 3)&quot;
     - do I need to incorporate this into the pixman-startof function?
 - write some performance tests
 - write some performance demos
+    - see jitblt-demo.c
     - show off previously slow operations/pixel formats
     - source transformations will likely be visually impressive
       (once I get around to implementing them)
@@ -81,6 +83,7 @@
     - static footprint (size of libjolt.a is about 2.7MB)
         - problem is in TEXT area? lots of symbols. Ian's thinking about it
     - runtime memory use (how much the GC and malloc are allocating)
+        - A lot. An extra 17MB for jitblt-demo.c on N800
     - need Ian's static code generator (in the works)
 - incorporate new cairo compositing semantics
     - this complicates the clean model we currently have. Look at this</diff>
      <filename>jitblt/TODO</filename>
    </modified>
    <modified>
      <diff>@@ -50,7 +50,9 @@
   (let ((head [self at: '0]))
     (cond ; FIXME: we assume two operands (which isn't always true!)
       ((== head '*) ; fixed-point multiplication
-       `(&gt;&gt; ,self 8))
+       ;`(&gt;&gt; ,self 8)) ; the fast, incorrect version
+       `(let ((t (+ (* ,[self at: '1] ,[self at: '2]) 128)))
+          (&amp; (&gt;&gt; (+ (&gt;&gt; t 8) t) 8) 255)))
       ((== head '/) ; fixed-point division
        `(/ (&lt;&lt; ,[self at: '1] 8) ,[self at: '2]))
       (1 self))))</diff>
      <filename>jitblt/expression.k</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,6 @@
 jolt \
   super.k \
+  uchar.k \
   map.k \
   expression.k \
   operator.k \</diff>
      <filename>jitblt/jitblt</filename>
    </modified>
    <modified>
      <diff>@@ -68,7 +68,7 @@
 ; 8-bit Pixel Format
 (define-type PixelFormat-8Bit PixelFormat ())
 (define [PixelFormat-8Bit bytes-per-pixel] '1)
-(define [PixelFormat-8Bit @] `(char@ ,[self var]))
+(define [PixelFormat-8Bit @] `(uchar@ ,[self var]))
 
 ; X8R8G8B8
 (define-type X8R8G8B8 PixelFormat-32Bit ())</diff>
      <filename>jitblt/pixel-format.k</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,10 @@
-; TODO finish this (use writeStream) to I don't have to be so verbose
+; TODO finish this (use writeStream) so I don't have to be so verbose
 ;(syntax test-pipeline
 ;  (lambda (node compiler)
 
+(printf &quot;\n; (jitblt-compile R5G6B5 IN A8 OVER R5G6B5)\n&quot;)
+[StdOut println: (jitblt-compile R5G6B5 IN A8 OVER R5G6B5)]
+
 (printf &quot;\n; (jitblt-compile X8B8G8R8 IN A8 OVER A8R8G8B8)\n&quot;)
 [StdOut println: (jitblt-compile X8B8G8R8 IN A8 OVER A8R8G8B8)]
 </diff>
      <filename>jitblt/test.k</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f502ebaad8c111c23ed25b9f04b3f284288782e2</id>
    </parent>
  </parents>
  <author>
    <name>Dan Amelang</name>
    <email>dan@amelang.net</email>
  </author>
  <url>http://github.com/damelang/jitblt/commit/3e6231c463a322e4fcb1b4960b6402f9d91edf4b</url>
  <id>3e6231c463a322e4fcb1b4960b6402f9d91edf4b</id>
  <committed-date>2008-08-15T14:39:15-07:00</committed-date>
  <authored-date>2008-08-15T14:39:15-07:00</authored-date>
  <message>Fix unsigned char problem and incorrect fixed-point multiply.</message>
  <tree>7f519b41194fc31559361eda63abba8976e0fe55</tree>
  <committer>
    <name>Dan Amelang</name>
    <email>dan@amelang.net</email>
  </committer>
</commit>
