#
69368780 |
|
16-Aug-2023 |
Zardshard <0azrune6@zard.anonaddy.com> |
Icon-O-Matic: Fix bugs that occur when pasting text Fixes a small, hard-to-see bug that occurs when pasting text into Icon-O-Matic. Before when pasting, for example, an "O" into IOM, the "O" would not be completely symmetrical. There would be an extra point on one of its sides. Now that point is gone. Also fixes paths not being closed when they should be. Back to the "O" example, one of the two paths that make up the "O" would be open. Now both paths are closed. Also determines whether a point should be connected or disconnected based on whether the control points and the vertices lie on a straight line. (If a point is marked as connected, the control points and the vertex are constrained to lie on the same line.) Change-Id: I0cb9f878ac7887640288073ca253de35b3937f3b Reviewed-on: https://review.haiku-os.org/c/haiku/+/6841 Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
85b82f85 |
|
19-Jul-2022 |
Dale Cieslak <dcieslak@yahoo.com> |
BFont: allow loading of user fonts from disk or memory This patch adds an API call to BFont, called LoadFont, that takes a string path to a font file. The user fonts are managed via a new class called AppFontManager that inherits from the base class FontManagerBase but adds the methods to add and remove user fonts from disk or memory. There is also a new method called UnloadFont to remove a user font, but on exit of an app all user fonts should be automatically cleaned up. Global/system fonts are managed by the GlobalFontManager, which is a new class that also inherits from the base class FontManagerBase, replacing the old "FontManager" class. A maximum of 128 user fonts may be loaded, and memory fonts may not exceed 20MB. There's also an overloaded version of LoadFont that accepts an area_id and loads the font from memory. A size and offset may optionally be provided to allow for an area that contains more than just a font. Change-Id: I6add42bdf0c0cefc0e2e2a4984fd848c3e7269e5 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4790 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
#
a4dfc6aa |
|
22-Aug-2022 |
Máximo Castañeda <antiswen@yahoo.es> |
app_server: fix deadlock in GlyphLayoutEngine We want to first try fallbacks with the same style as the main font, if available, but that introduces the chance of two threads trying to acquire the same locks in different order, so keep at most the main font and one fallback locked, and acquire them in a fixed order by address. Fixes: #17850 Change-Id: Ic352fadc46eb257d2bca4804962b11ab1eb9fa12 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5557 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
094079b8 |
|
04-Jul-2022 |
Dale Cieslak <dcieslak@yahoo.com> |
BFont: Implement BFont::BoundingBox Extracted as separate patch from CR 4790; implement BFont::BoundingBox as it was in BeOS. Returns a BRect that encloses any character in a font, scaled by the font size. Since the FreeType bbox is only valid for vector outlines, for bitmap fonts, return a BRect with the dimensions of the bitmap font that is closest to the font size. Tested with CharacterMap. Will update CharacterMap to use the bounding box once this change is landed. Note that bitmap font rendering doesn't appear to work at all. Change-ID: I8fc42ca0ddc0c77e04e0216001cd17e086ec7495 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5431 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
#
910ebfc4 |
|
02-Sep-2021 |
Máximo Castañeda <antiswen@yahoo.es> |
ServerFont: keep style if possible when setting face flags The current style probably has the correct style flags portion. Getting a new style in that case is unnecessary, and problematic with some font families that have several fonts mapping to the same style flag (SemiBold, Bold and ExtraBold are all B_BOLD_FACE, for example): the chosen one might be different than the one already set. Fixes #17229 Change-Id: Ie8e73627cc0547df9d624a8fac07f521fc983d06 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4416 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
ef83008e |
|
18-Jul-2020 |
Kacper Kasper <kacperkasper@gmail.com> |
app_server: add B_UNDERSCORE_FACE support There was some confusion (and a TODO indicating it) in ServerFont.cpp, because the notion of "font face" from the Be API is partially implemented using different font manager styles (bold, italic, etc), and partially by keeping flags in a separate variable for drawing extra things or modifying the drawing (underscore, strikeout, ...). The implementation did not actually preserve the extra flags, and so the underscore face attribute was lost. Implement the actual underlining of the text in AGGTextRenderer. This implementation is a naive one so far. In particular there are the following limitations: 1. Line is drawn over the text - no nice gaps for descents. Ideally, the line should not touch the letter descents, and leave some space around them. I don't know how to retrieve the contour - it appears to me this might require bigger refactoring of this code. I have left in my experiments commented out in the code. 2. If the text run ends with whitespace, the whitespace is not underlined as it should. In particular if another text run is drawn next to it and it's expected that the underline is continuous between the two. Change-Id: I8d78b8e1eceddff0a7d98e5a49659e7b03fd89a0 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3041 Reviewed-by: Kacper Kasper <kacperkasper@gmail.com> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
22dda779 |
|
03-Jul-2021 |
Máximo Castañeda <antiswen@yahoo.es> |
GlyphLayout: emit .nodef glyph for missing glyphs Use glyph 0 when no glyph is found for a character in the current font nor any of the fallbacks. HasGlyphs has to bypass LayoutGlyphs because we want it to mark this case as false, while still checking the fallbacks. Change-Id: Ief8d9d53c91992c659922fb56b79be7172f4ab0d Reviewed-on: https://review.haiku-os.org/c/haiku/+/4144 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
60d30785 |
|
27-Aug-2020 |
X512 <danger_mail@list.ru> |
app_server memory management fixes: use BReference Use BReference for more automated reference counting in app_server, fixing some use-after-free and other problems. Extracted from https://review.haiku-os.org/c/haiku/+/2695 Change-Id: I141bb248229405896b29feff3338447f7257b0b4 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3175 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
02f41b1a |
|
28-Dec-2018 |
Michael Lotz <mmlr@mlotz.ch> |
app_server: Cleanup argument checks to use boolean expressions.
|
#
8071db32 |
|
28-Dec-2018 |
Michael Lotz <mmlr@mlotz.ch> |
app_server: Add char limit to GlyphLayoutEngine::LayoutGlyphs(). Many of the consumers fill in data into preallocated arrays. Some of them already ignored values past the array size manually, some didn't. Add a maxChar argument and set it from the incoming array sizes for the various consumer cases.
|
#
22ce5525 |
|
28-Dec-2018 |
Michael Lotz <mmlr@mlotz.ch> |
app_server: Fix invalid cast of int32 to size_t array. Make ServerFont::GetBoundingBoxesForStrings() use size_t.
|
#
9dad3fb4 |
|
28-Dec-2018 |
Michael Lotz <mmlr@mlotz.ch> |
app_server: Style and comment cleanup, no functional change.
|
#
061b9eec |
|
28-May-2017 |
Dale Cieslak <dcieslak@yahoo.com> |
Memory leaks and locking issues in GetUnicodeBlocks and IncludesUnicodeBlock - GetTransformedFace *must* be paired with PutTransformedFace otherwise the font style never gets unlocked. - Also use FcCharSetDestroy when done with a fontconfig charset to prevent leaked memory. Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk> ticket: #13526
|
#
33c9787d |
|
21-May-2017 |
Dale Cieslak <dcieslak@yahoo.com> |
Fixes #13526 so that BFont::Blocks properly set bitmask for Unicode blocks in a font. ParseFcMap had several logic errors. - fixed variable being initialized in the wrong part of the loops - fixed problem of ANDing bit with 0x8 instead of 0x1 - changed some variable names; 'foundStartBlock' implies a boolean but it is a block number, so it is now just 'startBlock' - added const BITS_PER_BLOCK for magic number 32 - added short-circuit for empty full or partial blocks - initialized variables to -1 when 0 is a valid value - added code to handle when the end of a block is reached and a range was started but never finished. Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Fixes #13526
|
#
9b6b158b |
|
10-Mar-2016 |
dsizzle <dcieslak@yahoo.com> |
Implementation of BFont::Blocks BFont::Blocks is now implemented in ServerFont, via a call through the app_server. It uses fontconfig to iterate through a charset of a font and stores the defined blocks in a bitmap. A new API was added, BFont::IncludesBlock, that will allow for arbitrary testing of a given Unicode block. Since nothing is cached, searching through an entire charset for a series of Unicode blocks can be quite slow. In a given block there may be only 1 or 2 characters actually defined so every character within a block needs to be checked until one is found, which in a degenerate case will mean the entire block is checked. Signed-off-by: Axel Dörfler <axeld@pinc-software.de>
|
#
eb69155b |
|
04-Aug-2016 |
Axel Dörfler <axeld@pinc-software.de> |
app_server: Fixed/documented uses of new without nothrow. * This should fix all occurrences except for those in the drawing sub directory. * In some cases, the use of new without nothrow was okay, though.
|
#
91233f88 |
|
26-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
Font: Work on support for spacing modes. * Change default spacing to B_BITMAP_SPACING. The BeBook does not document what the default spacing is, and I have no BeOS install handy to check. However, I believe that B_BITMAP_SPACING is what should be the default, since it gives the best visible result for the common use-case. In terms of implementation, there is no change, since spacing was ignored until now and the behavior was that of B_BITMAP_SPACING. This change could however break BeOS apps which assume B_CHAR_SPACING is the default and don't set it on new when they need it. Sample code in the BeBook however shows setting B_CHAR_SPACING on a newly created BFont. * Implement B_STRING_SPACING to do something sensible. The BeBook documentation is completely vague in what it is actually supposed to do. Given the possibilities of FreeType, I am implementing it to enable the use of kerning. Kerning optimizes the spacing between two glyphs, for example, it would decrease the spacing between "T" and "e" in the string "Test" for our default font. Untested.
|
#
4ccc40a1 |
|
20-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Fixed BFont::GetEscapements() Both versions effectively ignored the provided escapement_delta. Also when layouting glyphs, the space/non-space delta were applied off-by-one. It should affect the advance for the current glyph, not the offset.
|
#
750958b8 |
|
06-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Prepare to be able to force vector glyphs... ...in everything text rendering related.
|
#
3fed1a15 |
|
05-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Get app_server working on x86_64. With this commit, app_server now compiles and runs at boot! Nothing particularly interesting happens, just the blue background and a mouse pointer. Remote backends are broken and not compiled in, see #8834. Note that it won't be possible to build this quite yet, need to get the FreeType package uploaded.
|
#
1d1031cf |
|
08-Mar-2011 |
Stephan Aßmus <superstippi@gmx.de> |
Duh, of course fStyle can be NULL in SetStyle(), which is for example called from the constructors... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40885 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
663738e9 |
|
08-Mar-2011 |
Stephan Aßmus <superstippi@gmx.de> |
The whole file assumes fStyle cannot be NULL, and it can't be NULL unless there is no default font at all, in which case we have more serious worries. CID 1559. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40884 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e910a0a3 |
|
23-Dec-2010 |
Michael Lotz <mmlr@mlotz.ch> |
CID 4186: The glyph_index is unsigned, so a >= 0 comparison is always true. The "empty glyph index" as per freetype (which is eventually called) actually is 0, so a != 0 comparison should be correct. Untested though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39929 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5bc9fb9d |
|
01-Feb-2010 |
Michael Lotz <mmlr@mlotz.ch> |
* Replace the truncate_string() helper function with a new, simplified version. * Remove no longer necessary support functions. * The new version uses a single BString as input/output parameter and only modifies that one by removing non-fitting chars and inserting the ellipsis where appropriate, so avoids copying around bytes/chars/strings in a few places. It uses the new Chars functions of BString so also no need for manual multibyte handling. * Adjusted the BFont and ServerFont usage of truncate_string() which are both simplified by using the single BString. It avoids a lot of temprary allocations and string copying. The char * version of BFont GetTruncatedStrings() now uses the BString version and not the other way around anymore which requires us to allocate temporary BString objects, it's not worse than before though. * This fixes a bunch of problems with the previous functions like always prepending the ellipsis for B_TRUNCATE_BEGINNING, crashing on short enough widths, violating the width in the B_TRUNCATE_END case when the width was short enough, non-optimal truncation in a few cases and sometimes truncation where none would've been needed. Also fixes #4128 which was a symptom of the broken B_TRUNCATE_BEGINNING. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35381 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
68667bf4 |
|
04-Oct-2009 |
Michael Lotz <mmlr@mlotz.ch> |
* Adding a remote desktop interface that operates on app_server drawing primitives by providing a RemoteDrawingEngine and a RemoteHWInterface. Not really optimized yet, still a bit WIP. * Adding corresponding infrastructure like a blocking ring buffer and network sender/receiver that are attached to the buffers to feed/drain them as well as a RemoteMessage helper that provides a message based interface. * Adding target screen concept to request an app to be run on a specific screen. It's controlled by the TARGET_SCREEN environment variable which is added on the app side and sent to the app_server. * Right now only remote target screens are supported, in which case a new RemoteHWInterface is created that tries to connect to the given host:port. * Fix shape bounds when drawing, they need to be translated by the pen position and converted to screen like the points as well. Wasn't visible though as the bounds weren't used in the normal DrawingEngine. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33417 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7f5bbbdc |
|
26-Jun-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed PI, and PI2 from math.h. * Replaced all occurences with the standard macros M_PI, and M_PI_2. * Some coding style cleanup on the touched files, no other changes besides adding a missing check for a failed memory allocation. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31250 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eeb00d5a |
|
14-Oct-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Small indentation improvement... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28084 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f1efe9b3 |
|
12-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* The string length of the UTF8 ellipsis was incorrect (would have been 3). * Whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26961 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5593e6d9 |
|
24-May-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Spotted a mistake in my previous commit, the style would still point to the last style if the face was not found. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25638 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5b30a26b |
|
24-May-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Added additional font face flags for "condensed", "light" and "heavy". Our font has some extra styles and these could be picked up as the "regular" face by accident, as witnessed by Firefox. Tracked down by Michael Lotz. Firefox uses the correct font now for it's interface. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25636 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a4de7fa0 |
|
27-Feb-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Do not trust the client! ServerFont::GetEscapements() now takes a parameter for the length of the arrays, so that even if the char/byte counts do not match, no memory is overwritten anymore. This fixes bug #1862; .canna obviously contains invalid UTF-8 characters, or there is a bug in StyledEdit (or deeper) and it doesn't call BFont::GetEscapements() correctly. * Fixed some cases of unchecked allocations in the font handling methods of ServerApp, added TODOs to all other ones. * Improved error code when creating a window fails. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24160 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
aadc09c6 |
|
11-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* fix the mixup of charCount (glyphs) versus bytes. The new font cache implementation takes the byte count, even though it looks like this is less efficient when the glyph count is already known (I tested to optimize it away but it was not faster) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21891 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
277bea40 |
|
06-Aug-2007 |
Axel Dörfler <axeld@pinc-software.de> |
rectArray can only be NULL in case fAsString is true, not the other way around; this fixes ServerFont::GetBoundingBoxesForStrings() (ScreenSaver no longer crashes as reported by Brian Verre on the mailing list). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21846 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
25a70616 |
|
02-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* moved AGGTextRenderer alongside it's pal, Painter, it felt lonely, removed font_support folder * ServerApp can use ServerFont::StringWidth() directly again * more ServerFont functions implemented via GlyphLayoutEngine and custom consumer * extended GlyphCache data structure to hole the left/right insets of the glyph shape between its advance width, took it from the earlier ServerFont implementation, have not tested if that gives same result as R5 * TODO: implement GetGylphShapes via GlyphCache, although it might not look as clean as it does now git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21805 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2222864e |
|
02-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* complete overhaul of the font/glyph caching * the previous AGG implementation is superfluous * the new implementation is based on that one, but in a way that allows read/write locking to the list of cache entries (fonts) as well as read/write locking to the cached glyphs per individual font cache entry * new GlyphLayoutEngine.h, which is to be the central place for layouting glyphs along the baseline. It handles the locking for getting the font cache entries. It works by giving it a template class GlyphConsumer which does the actual work. * changed AGGTextRenderer to use the new font cache * changed ServerFont::StringWidth(), and the bounding box stuff to use it * changed DrawingEngine, it doesn't need the global font lock anymore * our BFont thought that GetBoundingBoxesAsGlyphs and GetBoundingBoxesAsString is the same, which of course it isn't, hence the two separate functions... AsGlyphs just gets the bounding box of each glyph in a string, not treating the string as an actual word AsString adds the offset of the glyph in the word to the bounding box * changed ServerProtocol.h accordingly for the different bounding box meaning git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21797 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
38287e02 |
|
22-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* completed my changes to DrawState handling, the current DrawingState of the active ViewLayer is now always mirrored in the Painter instance of a ServerWindow, so that it doesn't need to be synced on every drawing command, this was previously incomplete for font handling * removed the DrawState parameter from all the DrawingEngine functions * adjusted ServerWindow and ServerPicture accordingly * made sure that string related functions used by non-drawing related parts (ServerApp, Decorator) don't interfere with the current drawing state * moved AS_SYNC handling from _DispatchViewMessage to _DispatchMessage, it is actually a window message and doesn't require fCurrentLayer to be valid * fixed bug #1300, fCurrentLayer was not updated when a ViewLayer was deleted by client request which happened to be fCurrentLayer (I am now handling it so that the parent becomes the current layer, could be wrong) * AGGTextRenderer is no longer using it's own scanline, which should save a few bytes RAM, the Painter already had such an object * StringWidth() in AGGTextRenderer is now taking the escapement_delta into account * Painter::StrokeLine() doesn't need to check the clipping as much, since that is already done in DrawingEngine * if a ServerWindow message is not handled because fCurrentLayer is NULL, a reply is sent in case the messages needs it (client window could freeze otherwise, waiting for the reply for ever) * removed unused AS_SET_FONT and AS_SET_FONT_SIZE * added automatic RGBColor -> rgb_color conversion to RGBColor.h * minor cleanup for 80 char/line limit git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21685 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5f43b49b |
|
18-Jul-2007 |
Ryan Leavengood <leavengood@gmail.com> |
When I added my BuyNow screen saver to the image and ran it, the app_server crashed. Turns out a call I use, BFont.GetBoundingBoxesForStrings was not implemented, and worse, there was bug in how the ServerApp read the parameters from the link. This was easy to fix to stop app_server from crashing, but it took me a while to figure out how to implement GetBoundingBoxesForStrings. Anyhow I implemented an initial version which works fairly well for now. I don't think the width is quite right, but it seems to match StringWidth(), so I guess it is good enough for now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21652 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
33794281 |
|
25-Dec-2006 |
Michael Lotz <mmlr@mlotz.ch> |
* Made UTF8 functions overflow safe * Unified UTF8CountChars and UTF8ToLength and removed the latter * Rewrote UTF8CountBytes to use the more safe algorithm from UTF8CountChars * Removed the unsafe count_utf8_bytes() function This should fix bug #839. Marcus can you please review? git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19624 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
10f6ed94 |
|
17-Dec-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* implemented "false bold" for text rendering. It is a new property of BFont. You can BFont::SetFalseBoldWidth(float) a width on a BFont object, and it will cause the glyph shapes to be run through an AGG "contour converter" so that they become thicker or thinner. IIRC, this is commonly referred to as "false bold". The "width" value is the distance in pixels that the new glyph outline will be offset from the original outline. It would be nice if someone could look at my change to View.h with regards to the B_FONT_ALL flag. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19547 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6edab601 |
|
11-Oct-2006 |
Axel Dörfler <axeld@pinc-software.de> |
We must not have the font manager locked when locking the desktop (no matter if read or write); there are some methods that cause a locking of the font manager (like ServerFont::SetFamilyAndStyle()). This fixes bug #885. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19051 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4894b870 |
|
27-Jun-2006 |
Jérôme Duval <korli@users.berlios.de> |
updated freetype to 2.2.1, tested ok, please forgive me for possible left issues :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17933 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
93820f1e |
|
26-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed moreUTF8.h to utf8_functions.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17239 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
20a4e726 |
|
23-Feb-2006 |
Michael Lotz <mmlr@mlotz.ch> |
* Changed the AGGTextRenderer to use the new UTF8 handling * Added more char codes to is_white_space(), should be all I think Sorry if I stepped on your toes Stephan, but I wanted these changes flushed before I leave for holidays :-). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16501 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9e7948f4 |
|
06-Feb-2006 |
Michael Lotz <mmlr@mlotz.ch> |
* Fixed locking of the FT_Face by moving it into Get/PutTransformedFace() * Removed the FaceGetter as it was only needed for locking * Cleaned up TruncateString() * Fixed a typo in moreUTF8.h git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16252 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
db5734a4 |
|
05-Feb-2006 |
Michael Lotz <mmlr@mlotz.ch> |
More work on the BFont special functions. * Reworked functions like GetEscapements(), GetBoundingBoxesAsString() and GetGlyphShapes() completely * Made the ServerFont functions uniform in their prototypes and cleaned out unnecessary arguments * Added new UTF8 handling functions to moreUTF8.h that are now used by ServerFont * Put the common transformations of the FT_Face into an own GetTransformedFace() to lessen code duplication In other words, ServerFont is now cleaned and handles UTF8 pretty efficiently. Some ToDo's are still left though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16241 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7213cb62 |
|
04-Feb-2006 |
Michael Lotz <mmlr@mlotz.ch> |
* Changed DrawShape() to take the current pen location into account (Stephan please review that AGG part) * Fixed GetEscapements() to return the correct values * Corrected and enabled the rotate / shear transform for GetGlyphShapes() and GetEscapements() The Iterview sample code demo is now working. If you play with it a bit you can also rotate the text. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16232 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bb96bd0a |
|
04-Feb-2006 |
Michael Lotz <mmlr@mlotz.ch> |
* Fixed GetGlyphShapes(). The BShapes that are outputted are correct now but the app_server still cannot draw them correctly. * Changed the allocation to new for GetGlyphShapes() and GetEscapements() as the data is deleted in ServerApp.cpp * Minor cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16231 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7afc7c50 |
|
08-Jan-2006 |
Stephan Aßmus <superstippi@gmx.de> |
ServerFont: * fixed weird pointer conversion in SetStyle() * fixed a potential mix up in operator=() in case the other ServerFont has fStyle == NULL ServerWindow: * the WindowLayer fTopLayer cannot be deleted by client request, just for safety reasons * the link is flushed if there is no drawing engine, but this case is theoretical only * deleting the ServerWindow object syncs with the client, so that when BBitmaps are deleted, they can be sure there are no pending messages (which would be executed in a nother thread) * there is no timeout anymore when sending messages to the client, which made absolutely no sense AGGTextRenderer: * renamed fFontManager to fFontCache, because that's what it really is * fLastFamilyAndStyle defaulted to the system plain font and therefor that font was never loaded when the font never changed meanwhile DrawingMode: * I'm not quite sure but I think there was the potential of a division by zero, at least I had crashes with "divide error" HWInterface: * fix update when the cursor shape changed in double buffered mode ViewLayer: * since the top layer is never really deleted before its time has come, it is not necessary to set it to NULL in the ViewLayer destructor ViewLayer/WindowLayer: * added a function to collect the view tokens that are affected by an update session EventDispatcher: * use the importance of the message for the timeout in _SendMessage() * drop mouse moved events in the server if we're lagging behind more than 5 ms (Axel, maybe review) View: * there were some problems with the locking of the BWindow looper in RemoveSelf(), since this is called from the window destructor, also of BWindows from BBitmaps, which have never been run (this might need review), at least I seem to have solved the crashing problems introduced by actually deleting the view hirarchy in the BWindow destructor * fixed _Draw() for being used non-recursively, temporarily disabled DrawAfterChildren, which didn't work yet anyways (because views cannot draw over children in the server yet) Window: * small cleanup when deleting shortcuts * sync with the server when having send AS_DELETE_WINDOW (see ServerWindow above) * fixed locking in Begin/EndViewTransaction() * removed folding of _UPDATE_ messages, since there is only one ever in the queue * set the fInTransaction flag during an update, I plan to use this in BView later to flush the link when drawing outside of an update * BView::_Draw() is now called by view token, this gives the next leap forward in speed, the overhead because of drawing clean views was considerable git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c12196d4 |
|
10-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* Removing fonts now works as expected. * removing a font family or style now always goes through the font manager. * removed FreeType "cache" remains (it wasn't used, anyway, and won't be used by us). * renamed SharedObject to ReferenceCounting as that's what it does. * the default fonts weren't deleted on shutdown. * added temporary work-around for waiting until a newly created entry is complete (just waits a moment...) - this will be fixed once Haiku supports this in a better way. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14833 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
90dfa707 |
|
09-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* ServerFont now also adopts the FontStyle's face and direction on construction. * ServerFont::SetStyle() now adopts the style's face and direction, too. * Started a more sane handling of ServerFont::SetFace() (at least there's a to-do comment :-)). * Minor cleanup (GetStyle() -> Style(), GetFamily() -> Family(), GetPath() -> Path()). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14809 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
974dd00c |
|
09-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The font manager now has default fonts for bold/fixed as well - these are now used in the DesktopSettings as defaults, too (but can be changed there). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14804 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
05bd1efe |
|
03-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* the FontManager is now a looper (but doesn't do anything useful yet). * moved the system default font functionality into the DesktopSettings class. * ServerFont::SetStyle() is now a public method. * Improved font fallback routines: they will never end up without a font if there is at least one font installed. * fixed some minor bugs in the DecorManager. * Decorator now get a DesktopSettings object passed - dunno if that's a good idea (since we'll have to open the DesktopSettings header), but it works for now (and something like this is probably needed anyway). * a clean ServerFont is now set to the system default font - and not to the (user chosen) desktop default font anymore (since the font manager doesn't know about that one). * Improved font directory scanning in the font manager a bit, it's now using find_directory() instead of hard-coded paths. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14666 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8365d9ec |
|
03-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* A ServerFont is now always valid, bye-bye ServerFont::InitCheck(). * The FontFamily is no longer reference counting itself. * SharedObject is now more useful and destructs itself when unused. * Fixed FontStyle::GetHeight()/ServerFont::GetHeight() semantics. * Simplified ServerFont constructors. * Removed wrong function descriptions. * FontStyleHeight is no longer used: the FontStyle is calculating the base font height on construction - this reduces the resolution a bit, but it's hopefully not causing any troubles (doesn't look like it, at least). * A FontStyle now removes itself from its family on destruction. * More cleanup, removed unused stuff like FontStyleHeight. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14657 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c9ff9a39 |
|
02-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
ServerFont::StringWidth() did not set the size of the face, and could therefore return wrong results. Activated it again to work-around the possible font deadlock. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14654 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bdd34c02 |
|
02-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed the FontServer class to FontManager. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14642 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
26a2be8b |
|
02-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
less overhead when byte count of string is already known git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14639 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c2a52d28 |
|
27-Oct-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added a temporary work-around to lift the FreeType problem we're seeing a bit: Turns out we are using a single FT_Face object for a given font size throughout the app_server - but the FT_Face object is not designed for a multi-threaded access, AFAICT. For example, it only has a single glyph slot, that we were using from different threads. This fix does not cover the renderer, however, which also uses that shared object; IOW even though it will crash less often it will still crash because of this. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14543 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ccdfe405 |
|
20-Oct-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Jerome is encoded in UTF8 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14445 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f2fd1298 |
|
30-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
now uses delta escapement improved GetBoundingBoxesAsString (just for fun, keep in mind we'll use AGGTextRenderer in the end :) ) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14091 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c0058fae |
|
26-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
first try at implementing ServerFont::GetBoundingBoxesAsString git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14075 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2f23ef90 |
|
25-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
added GetBoundingBoxesAsGlyph, GetBoundingBoxesAsString, GetBoundingBoxesAsStrings real implementation with freetype still missing git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14062 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
af86ce75 |
|
24-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
copyright update git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14058 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b1263be |
|
24-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
reworked BFont::GetStringWidths and BFont::StringWidth implemented BFont::GetEdges git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14057 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2185eed6 |
|
23-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
implemented GetHasGlyphs for real git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14056 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
599be434 |
|
19-Jul-2005 |
Jérôme Duval <korli@users.berlios.de> |
Implemented GetHasGlyphs support somehow (FT support is lacking) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13766 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b5436616 |
|
23-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed some style related functions and other oddities in FontServer. Also applied our style guide on that class. Renamed some public globals to match our style guide. Made BitmapManager inherit from BLocker instead of duplicating its functionality (incorrectly, did not check for B_INTERRUPTED) locally. Some more cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13259 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cf5ff0c0 |
|
15-Jun-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fixed memory corruption in the stuff I added to moreUTF8. This fixes GetEscapement crashes. The rest of the file needs reviewing as well, but I wanted to commit this ASAP git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13155 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
59345e26 |
|
03-Jun-2005 |
Stephan Aßmus <superstippi@gmx.de> |
huge cleanup, support for SetSizeLimits, support for truncating strings, numerous decorator bug fixes, Layer does not draw when view color is B_TRANSPARENT_COLOR, cleaner dispatching of mouse events to the WinBorder in RootLayer, commented the char map selection in the font server, as it seems glyph lookup by unicode index works much better with the default map git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12945 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3295cceb |
|
20-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Forgot something git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12751 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7220b138 |
|
20-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fixed confusion of byteCount and charCount in ServerFont::StringWidth(), just in case anyone really uses it later. Added UTF8CountChars() to moreUTF8.h, but then I didn't need it... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12750 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
38c5a7b7 |
|
20-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Implemented StringWidth in ServerFont, updated ServerApp to use it, and removed a -1 from TextView in the char location calculation, which I didn't understand and without which the cursor location and related stuff now finally work. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12744 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1f738c5b |
|
16-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Used other font metrics members in the GetEscapement implementation in order to support white spaces. As suggested by DarkWyrm. It seems to work better now, but I realised that DisplayDriverPainter::StringWidth() is broken in the same way. Will be fixed next. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12681 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9bdb0522 |
|
12-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Implemented BFont::GetEscapments() float version. It is pretty rough yet, but appears to handle UTF8 correctly. The optional escapement_delta is currently ignored. I didn't touch other functionality too much, until I know more about it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12645 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a52667ee |
|
13-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
added a comment about how it would be nice if ServerFont could be guaranteed to be valid (ie it doesn't crash if you call one of it's functions from outside code, I like it when a C++ class is an encapsulated object, maintaining a valid internal state, and whatever client code does, it should just never crash) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12390 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7d5778de |
|
01-Apr-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Added support for GetEscapements() too. Still unfinished. Maybe this should be moved elsewhere? git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12216 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ebf8af66 |
|
01-Apr-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Added support for BFont::GetGlyphShapes. Not finished yet and untested, delivery method as to be changed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12214 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d01b6238 |
|
29-Mar-2005 |
Stephan Aßmus <superstippi@gmx.de> |
some improvements to font handling, but Miniterminal still renders only black blocks git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12148 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
33bbe223 |
|
24-Mar-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Moved app_server files to app/. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11972 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
91233f88a3b4dc392389fad1626c56ed0b3812a0 |
|
26-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
Font: Work on support for spacing modes. * Change default spacing to B_BITMAP_SPACING. The BeBook does not document what the default spacing is, and I have no BeOS install handy to check. However, I believe that B_BITMAP_SPACING is what should be the default, since it gives the best visible result for the common use-case. In terms of implementation, there is no change, since spacing was ignored until now and the behavior was that of B_BITMAP_SPACING. This change could however break BeOS apps which assume B_CHAR_SPACING is the default and don't set it on new when they need it. Sample code in the BeBook however shows setting B_CHAR_SPACING on a newly created BFont. * Implement B_STRING_SPACING to do something sensible. The BeBook documentation is completely vague in what it is actually supposed to do. Given the possibilities of FreeType, I am implementing it to enable the use of kerning. Kerning optimizes the spacing between two glyphs, for example, it would decrease the spacing between "T" and "e" in the string "Test" for our default font. Untested.
|
#
4ccc40a15c5c250fbd5ddbefcfff5b651b102825 |
|
20-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Fixed BFont::GetEscapements() Both versions effectively ignored the provided escapement_delta. Also when layouting glyphs, the space/non-space delta were applied off-by-one. It should affect the advance for the current glyph, not the offset.
|
#
750958b8571b7c77fb5f7305074c3bafc5795419 |
|
06-Feb-2014 |
Stephan Aßmus <superstippi@gmx.de> |
app_server: Prepare to be able to force vector glyphs... ...in everything text rendering related.
|
#
3fed1a15f58e8d6fe6b492f3b94bb3625ffeddbd |
|
05-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Get app_server working on x86_64. With this commit, app_server now compiles and runs at boot! Nothing particularly interesting happens, just the blue background and a mouse pointer. Remote backends are broken and not compiled in, see #8834. Note that it won't be possible to build this quite yet, need to get the FreeType package uploaded.
|
#
1d1031cf278007b74d2da9633a082d8be568b0ac |
|
08-Mar-2011 |
Stephan Aßmus <superstippi@gmx.de> |
Duh, of course fStyle can be NULL in SetStyle(), which is for example called from the constructors... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40885 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
663738e98e1c71efcd91d30279e55bec7c41c0a1 |
|
08-Mar-2011 |
Stephan Aßmus <superstippi@gmx.de> |
The whole file assumes fStyle cannot be NULL, and it can't be NULL unless there is no default font at all, in which case we have more serious worries. CID 1559. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40884 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e910a0a3b707cb1800d949094bfaa3f5d5258f7e |
|
23-Dec-2010 |
Michael Lotz <mmlr@mlotz.ch> |
CID 4186: The glyph_index is unsigned, so a >= 0 comparison is always true. The "empty glyph index" as per freetype (which is eventually called) actually is 0, so a != 0 comparison should be correct. Untested though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39929 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5bc9fb9d241a00edec39ef04479d90b61dba7995 |
|
01-Feb-2010 |
Michael Lotz <mmlr@mlotz.ch> |
* Replace the truncate_string() helper function with a new, simplified version. * Remove no longer necessary support functions. * The new version uses a single BString as input/output parameter and only modifies that one by removing non-fitting chars and inserting the ellipsis where appropriate, so avoids copying around bytes/chars/strings in a few places. It uses the new Chars functions of BString so also no need for manual multibyte handling. * Adjusted the BFont and ServerFont usage of truncate_string() which are both simplified by using the single BString. It avoids a lot of temprary allocations and string copying. The char * version of BFont GetTruncatedStrings() now uses the BString version and not the other way around anymore which requires us to allocate temporary BString objects, it's not worse than before though. * This fixes a bunch of problems with the previous functions like always prepending the ellipsis for B_TRUNCATE_BEGINNING, crashing on short enough widths, violating the width in the B_TRUNCATE_END case when the width was short enough, non-optimal truncation in a few cases and sometimes truncation where none would've been needed. Also fixes #4128 which was a symptom of the broken B_TRUNCATE_BEGINNING. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35381 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
68667bf48a9e29a2d142cb3308b606d80bee3c2d |
|
04-Oct-2009 |
Michael Lotz <mmlr@mlotz.ch> |
* Adding a remote desktop interface that operates on app_server drawing primitives by providing a RemoteDrawingEngine and a RemoteHWInterface. Not really optimized yet, still a bit WIP. * Adding corresponding infrastructure like a blocking ring buffer and network sender/receiver that are attached to the buffers to feed/drain them as well as a RemoteMessage helper that provides a message based interface. * Adding target screen concept to request an app to be run on a specific screen. It's controlled by the TARGET_SCREEN environment variable which is added on the app side and sent to the app_server. * Right now only remote target screens are supported, in which case a new RemoteHWInterface is created that tries to connect to the given host:port. * Fix shape bounds when drawing, they need to be translated by the pen position and converted to screen like the points as well. Wasn't visible though as the bounds weren't used in the normal DrawingEngine. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33417 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7f5bbbdc56fa18cfc94ea649e9f1337301906e19 |
|
26-Jun-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed PI, and PI2 from math.h. * Replaced all occurences with the standard macros M_PI, and M_PI_2. * Some coding style cleanup on the touched files, no other changes besides adding a missing check for a failed memory allocation. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31250 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eeb00d5abc6bcb8c40af4388b69ead8847092c0d |
|
14-Oct-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Small indentation improvement... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28084 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f1efe9b3d2639935336a2820a6caed2a8f42be2d |
|
12-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* The string length of the UTF8 ellipsis was incorrect (would have been 3). * Whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26961 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5593e6d9f6eef879f025763dca327e2d0fbf058d |
|
24-May-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Spotted a mistake in my previous commit, the style would still point to the last style if the face was not found. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25638 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5b30a26b7ced440833fc4f0369c4ee8d717af99c |
|
24-May-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Added additional font face flags for "condensed", "light" and "heavy". Our font has some extra styles and these could be picked up as the "regular" face by accident, as witnessed by Firefox. Tracked down by Michael Lotz. Firefox uses the correct font now for it's interface. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25636 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a4de7fa0fa41cc3cae689ae24a1245e296272ea5 |
|
27-Feb-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Do not trust the client! ServerFont::GetEscapements() now takes a parameter for the length of the arrays, so that even if the char/byte counts do not match, no memory is overwritten anymore. This fixes bug #1862; .canna obviously contains invalid UTF-8 characters, or there is a bug in StyledEdit (or deeper) and it doesn't call BFont::GetEscapements() correctly. * Fixed some cases of unchecked allocations in the font handling methods of ServerApp, added TODOs to all other ones. * Improved error code when creating a window fails. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24160 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
aadc09c6651a6b4c522f91d3cc9f137064a66896 |
|
11-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* fix the mixup of charCount (glyphs) versus bytes. The new font cache implementation takes the byte count, even though it looks like this is less efficient when the glyph count is already known (I tested to optimize it away but it was not faster) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21891 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
277bea40a31cd83625afee0d5586d6ac5783ad4c |
|
06-Aug-2007 |
Axel Dörfler <axeld@pinc-software.de> |
rectArray can only be NULL in case fAsString is true, not the other way around; this fixes ServerFont::GetBoundingBoxesForStrings() (ScreenSaver no longer crashes as reported by Brian Verre on the mailing list). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21846 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
25a706165200f555d65fba7648a0092a64c018af |
|
02-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* moved AGGTextRenderer alongside it's pal, Painter, it felt lonely, removed font_support folder * ServerApp can use ServerFont::StringWidth() directly again * more ServerFont functions implemented via GlyphLayoutEngine and custom consumer * extended GlyphCache data structure to hole the left/right insets of the glyph shape between its advance width, took it from the earlier ServerFont implementation, have not tested if that gives same result as R5 * TODO: implement GetGylphShapes via GlyphCache, although it might not look as clean as it does now git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21805 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2222864eed6bc28cff3d837c98d1509dcbcf38bc |
|
02-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* complete overhaul of the font/glyph caching * the previous AGG implementation is superfluous * the new implementation is based on that one, but in a way that allows read/write locking to the list of cache entries (fonts) as well as read/write locking to the cached glyphs per individual font cache entry * new GlyphLayoutEngine.h, which is to be the central place for layouting glyphs along the baseline. It handles the locking for getting the font cache entries. It works by giving it a template class GlyphConsumer which does the actual work. * changed AGGTextRenderer to use the new font cache * changed ServerFont::StringWidth(), and the bounding box stuff to use it * changed DrawingEngine, it doesn't need the global font lock anymore * our BFont thought that GetBoundingBoxesAsGlyphs and GetBoundingBoxesAsString is the same, which of course it isn't, hence the two separate functions... AsGlyphs just gets the bounding box of each glyph in a string, not treating the string as an actual word AsString adds the offset of the glyph in the word to the bounding box * changed ServerProtocol.h accordingly for the different bounding box meaning git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21797 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
38287e02afe4c0b08ae1c2c3279bb8d3a2e07fc2 |
|
22-Jul-2007 |
Stephan Aßmus <superstippi@gmx.de> |
* completed my changes to DrawState handling, the current DrawingState of the active ViewLayer is now always mirrored in the Painter instance of a ServerWindow, so that it doesn't need to be synced on every drawing command, this was previously incomplete for font handling * removed the DrawState parameter from all the DrawingEngine functions * adjusted ServerWindow and ServerPicture accordingly * made sure that string related functions used by non-drawing related parts (ServerApp, Decorator) don't interfere with the current drawing state * moved AS_SYNC handling from _DispatchViewMessage to _DispatchMessage, it is actually a window message and doesn't require fCurrentLayer to be valid * fixed bug #1300, fCurrentLayer was not updated when a ViewLayer was deleted by client request which happened to be fCurrentLayer (I am now handling it so that the parent becomes the current layer, could be wrong) * AGGTextRenderer is no longer using it's own scanline, which should save a few bytes RAM, the Painter already had such an object * StringWidth() in AGGTextRenderer is now taking the escapement_delta into account * Painter::StrokeLine() doesn't need to check the clipping as much, since that is already done in DrawingEngine * if a ServerWindow message is not handled because fCurrentLayer is NULL, a reply is sent in case the messages needs it (client window could freeze otherwise, waiting for the reply for ever) * removed unused AS_SET_FONT and AS_SET_FONT_SIZE * added automatic RGBColor -> rgb_color conversion to RGBColor.h * minor cleanup for 80 char/line limit git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21685 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5f43b49ba05a837a4d72fb9c04258188e2e49bcd |
|
18-Jul-2007 |
Ryan Leavengood <leavengood@gmail.com> |
When I added my BuyNow screen saver to the image and ran it, the app_server crashed. Turns out a call I use, BFont.GetBoundingBoxesForStrings was not implemented, and worse, there was bug in how the ServerApp read the parameters from the link. This was easy to fix to stop app_server from crashing, but it took me a while to figure out how to implement GetBoundingBoxesForStrings. Anyhow I implemented an initial version which works fairly well for now. I don't think the width is quite right, but it seems to match StringWidth(), so I guess it is good enough for now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21652 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3379428150e443850c2700ce56548c14f4f5ee5c |
|
25-Dec-2006 |
Michael Lotz <mmlr@mlotz.ch> |
* Made UTF8 functions overflow safe * Unified UTF8CountChars and UTF8ToLength and removed the latter * Rewrote UTF8CountBytes to use the more safe algorithm from UTF8CountChars * Removed the unsafe count_utf8_bytes() function This should fix bug #839. Marcus can you please review? git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19624 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
10f6ed940bffa4153ff5511897bcc823b1f2d792 |
|
17-Dec-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* implemented "false bold" for text rendering. It is a new property of BFont. You can BFont::SetFalseBoldWidth(float) a width on a BFont object, and it will cause the glyph shapes to be run through an AGG "contour converter" so that they become thicker or thinner. IIRC, this is commonly referred to as "false bold". The "width" value is the distance in pixels that the new glyph outline will be offset from the original outline. It would be nice if someone could look at my change to View.h with regards to the B_FONT_ALL flag. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19547 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6edab6011e23437c2cda1a80cf988427f8652658 |
|
11-Oct-2006 |
Axel Dörfler <axeld@pinc-software.de> |
We must not have the font manager locked when locking the desktop (no matter if read or write); there are some methods that cause a locking of the font manager (like ServerFont::SetFamilyAndStyle()). This fixes bug #885. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19051 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4894b8704556be7e02880d62728279d7ffed90e0 |
|
27-Jun-2006 |
Jérôme Duval <korli@users.berlios.de> |
updated freetype to 2.2.1, tested ok, please forgive me for possible left issues :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17933 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
93820f1ea7afb270758e286246c3757622fb0016 |
|
26-Apr-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed moreUTF8.h to utf8_functions.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17239 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
20a4e7265cf2c007b52d3297e3310497a74ea5e6 |
|
23-Feb-2006 |
Michael Lotz <mmlr@mlotz.ch> |
* Changed the AGGTextRenderer to use the new UTF8 handling * Added more char codes to is_white_space(), should be all I think Sorry if I stepped on your toes Stephan, but I wanted these changes flushed before I leave for holidays :-). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16501 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9e7948f45e6b4ff830553c95a037e49f6b5dccd4 |
|
06-Feb-2006 |
Michael Lotz <mmlr@mlotz.ch> |
* Fixed locking of the FT_Face by moving it into Get/PutTransformedFace() * Removed the FaceGetter as it was only needed for locking * Cleaned up TruncateString() * Fixed a typo in moreUTF8.h git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16252 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
db5734a452fa53de2ed303eea64622c5d310280e |
|
05-Feb-2006 |
Michael Lotz <mmlr@mlotz.ch> |
More work on the BFont special functions. * Reworked functions like GetEscapements(), GetBoundingBoxesAsString() and GetGlyphShapes() completely * Made the ServerFont functions uniform in their prototypes and cleaned out unnecessary arguments * Added new UTF8 handling functions to moreUTF8.h that are now used by ServerFont * Put the common transformations of the FT_Face into an own GetTransformedFace() to lessen code duplication In other words, ServerFont is now cleaned and handles UTF8 pretty efficiently. Some ToDo's are still left though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16241 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7213cb626cd150fdc88ae767750753b59e63bc5e |
|
04-Feb-2006 |
Michael Lotz <mmlr@mlotz.ch> |
* Changed DrawShape() to take the current pen location into account (Stephan please review that AGG part) * Fixed GetEscapements() to return the correct values * Corrected and enabled the rotate / shear transform for GetGlyphShapes() and GetEscapements() The Iterview sample code demo is now working. If you play with it a bit you can also rotate the text. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16232 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bb96bd0a70d1cd2ac657a59016e70a1df4923909 |
|
04-Feb-2006 |
Michael Lotz <mmlr@mlotz.ch> |
* Fixed GetGlyphShapes(). The BShapes that are outputted are correct now but the app_server still cannot draw them correctly. * Changed the allocation to new for GetGlyphShapes() and GetEscapements() as the data is deleted in ServerApp.cpp * Minor cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16231 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7afc7c5074c2a3382be788d22fe999040c582ccb |
|
08-Jan-2006 |
Stephan Aßmus <superstippi@gmx.de> |
ServerFont: * fixed weird pointer conversion in SetStyle() * fixed a potential mix up in operator=() in case the other ServerFont has fStyle == NULL ServerWindow: * the WindowLayer fTopLayer cannot be deleted by client request, just for safety reasons * the link is flushed if there is no drawing engine, but this case is theoretical only * deleting the ServerWindow object syncs with the client, so that when BBitmaps are deleted, they can be sure there are no pending messages (which would be executed in a nother thread) * there is no timeout anymore when sending messages to the client, which made absolutely no sense AGGTextRenderer: * renamed fFontManager to fFontCache, because that's what it really is * fLastFamilyAndStyle defaulted to the system plain font and therefor that font was never loaded when the font never changed meanwhile DrawingMode: * I'm not quite sure but I think there was the potential of a division by zero, at least I had crashes with "divide error" HWInterface: * fix update when the cursor shape changed in double buffered mode ViewLayer: * since the top layer is never really deleted before its time has come, it is not necessary to set it to NULL in the ViewLayer destructor ViewLayer/WindowLayer: * added a function to collect the view tokens that are affected by an update session EventDispatcher: * use the importance of the message for the timeout in _SendMessage() * drop mouse moved events in the server if we're lagging behind more than 5 ms (Axel, maybe review) View: * there were some problems with the locking of the BWindow looper in RemoveSelf(), since this is called from the window destructor, also of BWindows from BBitmaps, which have never been run (this might need review), at least I seem to have solved the crashing problems introduced by actually deleting the view hirarchy in the BWindow destructor * fixed _Draw() for being used non-recursively, temporarily disabled DrawAfterChildren, which didn't work yet anyways (because views cannot draw over children in the server yet) Window: * small cleanup when deleting shortcuts * sync with the server when having send AS_DELETE_WINDOW (see ServerWindow above) * fixed locking in Begin/EndViewTransaction() * removed folding of _UPDATE_ messages, since there is only one ever in the queue * set the fInTransaction flag during an update, I plan to use this in BView later to flush the link when drawing outside of an update * BView::_Draw() is now called by view token, this gives the next leap forward in speed, the overhead because of drawing clean views was considerable git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15878 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c12196d47bdd9c037dc4ec7f2810663274f32897 |
|
10-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* Removing fonts now works as expected. * removing a font family or style now always goes through the font manager. * removed FreeType "cache" remains (it wasn't used, anyway, and won't be used by us). * renamed SharedObject to ReferenceCounting as that's what it does. * the default fonts weren't deleted on shutdown. * added temporary work-around for waiting until a newly created entry is complete (just waits a moment...) - this will be fixed once Haiku supports this in a better way. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14833 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
90dfa70739c4afba1330e8bda26597fccef63d5d |
|
09-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* ServerFont now also adopts the FontStyle's face and direction on construction. * ServerFont::SetStyle() now adopts the style's face and direction, too. * Started a more sane handling of ServerFont::SetFace() (at least there's a to-do comment :-)). * Minor cleanup (GetStyle() -> Style(), GetFamily() -> Family(), GetPath() -> Path()). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14809 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
974dd00c857f8a8a89798b3a15293d1ed815408d |
|
09-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The font manager now has default fonts for bold/fixed as well - these are now used in the DesktopSettings as defaults, too (but can be changed there). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14804 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
05bd1efe5b72256ccd4afa82fafb7da4ae045e0d |
|
03-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* the FontManager is now a looper (but doesn't do anything useful yet). * moved the system default font functionality into the DesktopSettings class. * ServerFont::SetStyle() is now a public method. * Improved font fallback routines: they will never end up without a font if there is at least one font installed. * fixed some minor bugs in the DecorManager. * Decorator now get a DesktopSettings object passed - dunno if that's a good idea (since we'll have to open the DesktopSettings header), but it works for now (and something like this is probably needed anyway). * a clean ServerFont is now set to the system default font - and not to the (user chosen) desktop default font anymore (since the font manager doesn't know about that one). * Improved font directory scanning in the font manager a bit, it's now using find_directory() instead of hard-coded paths. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14666 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8365d9ecd2ee3cbc483fb75e7094e39005912446 |
|
03-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* A ServerFont is now always valid, bye-bye ServerFont::InitCheck(). * The FontFamily is no longer reference counting itself. * SharedObject is now more useful and destructs itself when unused. * Fixed FontStyle::GetHeight()/ServerFont::GetHeight() semantics. * Simplified ServerFont constructors. * Removed wrong function descriptions. * FontStyleHeight is no longer used: the FontStyle is calculating the base font height on construction - this reduces the resolution a bit, but it's hopefully not causing any troubles (doesn't look like it, at least). * A FontStyle now removes itself from its family on destruction. * More cleanup, removed unused stuff like FontStyleHeight. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14657 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c9ff9a39d05bc20c6ab6afdb52dacf6448945726 |
|
02-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
ServerFont::StringWidth() did not set the size of the face, and could therefore return wrong results. Activated it again to work-around the possible font deadlock. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14654 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bdd34c028f89763afa318013894e0beb039bba97 |
|
02-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed the FontServer class to FontManager. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14642 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
26a2be8ba57f87fc8a5c6e5845defa5816f77329 |
|
02-Nov-2005 |
Stephan Aßmus <superstippi@gmx.de> |
less overhead when byte count of string is already known git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14639 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c2a52d283624b163421bbcbc19278aa86076b5e3 |
|
27-Oct-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added a temporary work-around to lift the FreeType problem we're seeing a bit: Turns out we are using a single FT_Face object for a given font size throughout the app_server - but the FT_Face object is not designed for a multi-threaded access, AFAICT. For example, it only has a single glyph slot, that we were using from different threads. This fix does not cover the renderer, however, which also uses that shared object; IOW even though it will crash less often it will still crash because of this. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14543 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ccdfe4055f92de9ef5f573577252645e8bcb0313 |
|
20-Oct-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Jerome is encoded in UTF8 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14445 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f2fd12985205decda0138ba31d9b82865b6fe9e8 |
|
30-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
now uses delta escapement improved GetBoundingBoxesAsString (just for fun, keep in mind we'll use AGGTextRenderer in the end :) ) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14091 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c0058faecc29759f02ece91d56fe66ddc110f347 |
|
26-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
first try at implementing ServerFont::GetBoundingBoxesAsString git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14075 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2f23ef90dd1c72779c09cdb5fd035a636f41538b |
|
25-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
added GetBoundingBoxesAsGlyph, GetBoundingBoxesAsString, GetBoundingBoxesAsStrings real implementation with freetype still missing git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14062 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
af86ce75a07e5d2e119e46182489e12a22e7dabf |
|
24-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
copyright update git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14058 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b1263bedf5512d3312c6722a10c2d1184de391e |
|
24-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
reworked BFont::GetStringWidths and BFont::StringWidth implemented BFont::GetEdges git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14057 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2185eed6d2679fcb56d83287d9939d29608d9f44 |
|
23-Aug-2005 |
Jérôme Duval <korli@users.berlios.de> |
implemented GetHasGlyphs for real git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14056 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
599be43472927a99764bc0a5fd9d9bf5d07cb150 |
|
19-Jul-2005 |
Jérôme Duval <korli@users.berlios.de> |
Implemented GetHasGlyphs support somehow (FT support is lacking) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13766 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b5436616a3528ac13645a3e73065474ef988c107 |
|
23-Jun-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed some style related functions and other oddities in FontServer. Also applied our style guide on that class. Renamed some public globals to match our style guide. Made BitmapManager inherit from BLocker instead of duplicating its functionality (incorrectly, did not check for B_INTERRUPTED) locally. Some more cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13259 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cf5ff0c0d0cd04adc9fe26e0ab62c70bd1c65b43 |
|
15-Jun-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fixed memory corruption in the stuff I added to moreUTF8. This fixes GetEscapement crashes. The rest of the file needs reviewing as well, but I wanted to commit this ASAP git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13155 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
59345e264fccac812b03a49a1e4466f10133a309 |
|
03-Jun-2005 |
Stephan Aßmus <superstippi@gmx.de> |
huge cleanup, support for SetSizeLimits, support for truncating strings, numerous decorator bug fixes, Layer does not draw when view color is B_TRANSPARENT_COLOR, cleaner dispatching of mouse events to the WinBorder in RootLayer, commented the char map selection in the font server, as it seems glyph lookup by unicode index works much better with the default map git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12945 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3295cceb8ff24ce99fde9b4ba3a0a947893ca3e0 |
|
20-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Forgot something git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12751 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7220b138f278034a2549ba7eecdbc121095c0e6f |
|
20-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
fixed confusion of byteCount and charCount in ServerFont::StringWidth(), just in case anyone really uses it later. Added UTF8CountChars() to moreUTF8.h, but then I didn't need it... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12750 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
38c5a7b7fa10b1cdd7e15a482cba5461957b4986 |
|
20-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Implemented StringWidth in ServerFont, updated ServerApp to use it, and removed a -1 from TextView in the char location calculation, which I didn't understand and without which the cursor location and related stuff now finally work. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12744 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1f738c5b4e1e4e1330b23c39459ad7600fe966df |
|
16-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Used other font metrics members in the GetEscapement implementation in order to support white spaces. As suggested by DarkWyrm. It seems to work better now, but I realised that DisplayDriverPainter::StringWidth() is broken in the same way. Will be fixed next. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12681 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9bdb0522c19c1f779f8e5c56e8faa4a749800cff |
|
12-May-2005 |
Stephan Aßmus <superstippi@gmx.de> |
Implemented BFont::GetEscapments() float version. It is pretty rough yet, but appears to handle UTF8 correctly. The optional escapement_delta is currently ignored. I didn't touch other functionality too much, until I know more about it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12645 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a52667ee9c7f0ac1ce04b62f8a2745e90944da53 |
|
13-Apr-2005 |
Stephan Aßmus <superstippi@gmx.de> |
added a comment about how it would be nice if ServerFont could be guaranteed to be valid (ie it doesn't crash if you call one of it's functions from outside code, I like it when a C++ class is an encapsulated object, maintaining a valid internal state, and whatever client code does, it should just never crash) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12390 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7d5778defa3ca2b0ae8da7604c9e01921b9aaa51 |
|
01-Apr-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Added support for GetEscapements() too. Still unfinished. Maybe this should be moved elsewhere? git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12216 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ebf8af66c9ef27a706dde42124e0fa42d594d04e |
|
01-Apr-2005 |
Michael Lotz <mmlr@mlotz.ch> |
Added support for BFont::GetGlyphShapes. Not finished yet and untested, delivery method as to be changed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12214 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d01b623805b28965a38a142b8471c7b9ea9eca8e |
|
29-Mar-2005 |
Stephan Aßmus <superstippi@gmx.de> |
some improvements to font handling, but Miniterminal still renders only black blocks git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12148 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
33bbe223914093509b4bc56bea8a90c81af80a37 |
|
24-Mar-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Moved app_server files to app/. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11972 a95241bf-73f2-0310-859d-f6bbb57e9c96
|