Age | Commit message (Collapse) | Author | Files | Lines |
|
In order to have locale-independent output of decimal values, we need to
manually transform such numbers into strings. As this is a solved problem
for cairo, we adopt _cairo_output_stream_printf() and in particular the
_cairo_dtostr() routine for our own printf processing.
|
|
Use the content recorded in the trace, defaulting to COLOR_ALPHA, to
determine the replayed surface type.
|
|
Laziness caused the control character to be used instead of its
replacement in the escaped string!
|
|
A couple of minor typos in the escaped characters strings.
|
|
The largest index that will fit within 8 bits is 255 not 256!
|
|
Improve scoping of variables.
|
|
Check that the application is using cairo >= 1.9 before attempting to
query the mime-data.
|
|
Using hyphen in the operators is easier to read than underscores.
|
|
Adrian Johnson spotted that the build was broken if the PNG functions were
disabled. Fix.
|
|
We tried to push a reference to an undefined font-face, now we just copy
from the operand stack.
|
|
Avoid building a temporary array by constructing the matrix directly.
|
|
Fixup compilation by copying the checks from cairo-wideint-private.h to
conditionally include byteswap.h and provide fallback implementations.
|
|
Reparsing the dwarf info for every lookup is very slow, so cache the
symbol lookups. This initial implementation is unbounded in the simple
belief that the actual number of unique lookups during a program's
lifetime should be fairly small. (Extending to a bounded MRU list is left
as an exercise for the reader.)
|
|
Use lookup_symbol() on the return address to identify the caller and emit
useful debug info to the trace.
|
|
|
|
We cannot trace the cairo-script-interpreter as that uses Cairo's private
symbols.
|
|
Capture the image data on mark dirty and record in the trace.
|
|
Add warning that CairoScript is unfinished and I may radically alter the
format/syntax/language before release.
|
|
In order that the string is interned and so is only allocated the once.
|
|
Don't waste string constants (which get interned) for a simple number!
|
|
An accidental /source was pushing pushed onto the operand stack and never
used.
|
|
A limitation of the current API was that the destroy notifier was called
on the mime-data block. This prevents the user from passing in a pointer
to a managed block, for example a mime-data block belonging to a
ref-counted object. We can overcome this by allowing the user to specify
the closure to be used with the destroy notifier.
|
|
When emitting image data, first check to see if we have a pre-compressed
alternate representation.
|
|
Remove some redundant whitespace from the glyph arrays to improve
readability and shrink the output file size.
|
|
set_font_face was not consuming it's operand but blithely placing an
undefined font_face onto the operand stack, whereas set_source was
performing invalid exchanges on the stack.
|
|
If we attempt to use a surface as a source before we write to it, record
the surface contents.
|
|
Be consistent and use "//" for the filter mode to indicate a constant.
|
|
In the case where the font face was no longer on the operand stack, the
font face would not have been passed to cairo_scaled_font_create().
|
|
If called directly (e.g. via /etc/ld.so.preload) put the output trace into
a central directory, and not the pwd.
|
|
Simplify the trace/replay by replacing the identity array with the
identity operator.
|
|
A few typos.
|
|
Wrap the test surfaces to avoid crashes whilst tracing the test suite.
|
|
Use the surface user-data array allow to store an arbitrary set of
alternate image representations keyed by an interned string (which
ensures that it has a unique key in the user-visible namespace).
Update the API to mirror that of cairo_surface_set_user_data() [i.e.
return a status indicator] and switch internal users of the mime-data to
the public functions.
|
|
Wrap the new cairo_surface_set_mime_data() function.
|
|
Don't increment the terminator!
|
|
Honour the parameter specifying the length of the utf8 string when
emitting show_text_glyphs.
|
|
This tool can be used to trace all the cairo function calls made by an
applications. This is useful for either extracting a test case triggering
a bug from an application, or simply to get a general idea of how an
application is using cairo.
After make install, cairo-trace program arguments, will print out all the
cairo calls to the terminal and also capture theme in ./program.$pid.trace
The format of the output is CairoScript, watch this space for more
cairo-script tools!
|