From fabb787bde041d0248b8095713179568c78011fa Mon Sep 17 00:00:00 2001 From: cxl Date: Sun, 2 Aug 2009 10:11:30 +0000 Subject: [PATCH] Syncing uppdev git-svn-id: svn://ultimatepp.org/upp/trunk@1464 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppdev/SetSurface/SetSurface.upp | 9 ++ uppdev/SetSurface/main.cpp | 36 ++++++++ uppdev/StringStream/StringStream.upp | 19 ++-- uppdev/StringStream/init | 4 + uppdev/StringStream/main.cpp | 16 ++-- uppdev/StringStream/sstrm.cpp | 124 --------------------------- uppdev/StringStream/sstrm.h | 8 -- 7 files changed, 63 insertions(+), 153 deletions(-) create mode 100644 uppdev/SetSurface/SetSurface.upp create mode 100644 uppdev/SetSurface/main.cpp create mode 100644 uppdev/StringStream/init delete mode 100644 uppdev/StringStream/sstrm.cpp delete mode 100644 uppdev/StringStream/sstrm.h diff --git a/uppdev/SetSurface/SetSurface.upp b/uppdev/SetSurface/SetSurface.upp new file mode 100644 index 000000000..5872304d3 --- /dev/null +++ b/uppdev/SetSurface/SetSurface.upp @@ -0,0 +1,9 @@ +uses + CtrlLib; + +file + main.cpp; + +mainconfig + "" = "GUI"; + diff --git a/uppdev/SetSurface/main.cpp b/uppdev/SetSurface/main.cpp new file mode 100644 index 000000000..237b8c52c --- /dev/null +++ b/uppdev/SetSurface/main.cpp @@ -0,0 +1,36 @@ +#include + +using namespace Upp; + +struct MyApp : TopWindow { + RGBA pixels[65536]; + + virtual void Paint(Draw& w) { + w.DrawRect(GetSize(), LtGray()); + RTIMING("Benchmark"); + for(int i = 0; i < 100; i++) { + SetSurface(w, 0, 0, 256, 256, pixels); + SetSurface(w, RectC(300, 128, 128, 128), pixels, Size(256, 256), Point(0, 0)); + SetSurface(w, RectC(300, 0, 128, 64), pixels, Size(256, 256), Point(128, 128)); + } + } + + MyApp() { + RGBA *t = pixels; + for(int x = 0; x < 256; x++) + for(int y = 0; y < 256; y++) { + int d = (x - 128) * (x - 128) + (y - 128) * (y - 128); + RGBA c = Black(); + if(d > 120 * 120) + c = White(); + if(d < 120 * 120) + c.r = 255 - min(255 * d / (120 * 120), 255); + *t++ = c; + } + } +}; + +GUI_APP_MAIN +{ + MyApp().Run(); +} diff --git a/uppdev/StringStream/StringStream.upp b/uppdev/StringStream/StringStream.upp index ac007cc8b..3a775f5f9 100644 --- a/uppdev/StringStream/StringStream.upp +++ b/uppdev/StringStream/StringStream.upp @@ -1,10 +1,9 @@ -uses - Core; - -file - sstrm.h, - sstrm.cpp, - main.cpp; - -mainconfig - "" = "CONSOLE ST"; +uses + Core; + +file + main.cpp; + +mainconfig + "" = "CONSOLE ST"; + diff --git a/uppdev/StringStream/init b/uppdev/StringStream/init new file mode 100644 index 000000000..28b4bb1a3 --- /dev/null +++ b/uppdev/StringStream/init @@ -0,0 +1,4 @@ +#ifndef _StringStream_icpp_init_stub +#define _StringStream_icpp_init_stub +#include "Core/init" +#endif diff --git a/uppdev/StringStream/main.cpp b/uppdev/StringStream/main.cpp index 852571b2c..ee4cb3fbf 100644 --- a/uppdev/StringStream/main.cpp +++ b/uppdev/StringStream/main.cpp @@ -1,15 +1,9 @@ -#include "sstrm.h" +#include "Core/Core.h" + +using namespace Upp; CONSOLE_APP_MAIN { StringStream ss; - ss.Put('*'); - ss.Put("ahoj kamarade jak se mas"); - ss.Seek(0); - DUMP(ss.GetLine()); - LOGHEXDUMP(ss.GetResult(), ss.GetResult().GetCount()); - ss.Seek(0); - DUMP(ss.GetLine()); - ss.Put("Another one"); - LOGHEXDUMP(ss.GetResult(), ss.GetResult().GetCount()); -} \ No newline at end of file + ss.Put("xxx", 3); +} diff --git a/uppdev/StringStream/sstrm.cpp b/uppdev/StringStream/sstrm.cpp deleted file mode 100644 index 0ff61bc48..000000000 --- a/uppdev/StringStream/sstrm.cpp +++ /dev/null @@ -1,124 +0,0 @@ -#include "sstrm.h" - -void StringStream::Reads() -{ - wdata.Clear(); - buffer = (byte *) ~data; - pos = 0; - ptr = wrlim = buffer; - rdlim = buffer + data.GetCount(); - writes = false; -} - -void StringStream::Bufr() -{ - buffer = (byte *)wdata.Begin(); - rdlim = wrlim = (byte *)wdata.End(); -} - -void StringStream::Writes() -{ - if(writes) return; - dword p = ptr - buffer; - wdata = data; - Bufr(); - ptr = buffer + p; - writes = true; - size = rdlim - buffer; -} - -void StringStream::Open(const String& adata) -{ - data = adata; - style = STRM_READ|STRM_WRITE|STRM_SEEK|STRM_LOADING; - Reads(); - ClearError(); -} - -void StringStream::Create() -{ - Open(String()); - SetStoring(); - Writes(); - ClearError(); -} - -dword StringStream::GetSize() const -{ - return writes ? max((dword)(ptr - buffer), size) : data.GetLength(); -} - -String StringStream::GetResult() -{ - if(writes) { - wdata.SetLength(GetSize()); - dword p = ptr - buffer; - data = wdata; - Reads(); - ptr = buffer + p; - } - return data; -} - -void StringStream::_Put(const void *d, dword sz) -{ - Writes(); - if(ptr + sz >= wrlim) { - dword p = ptr - buffer; - #ifdef _DEBUG - wdata.SetLength(max((dword)1, max(2 * GetSize(), GetSize() + sz))); - #else - wdata.SetLength(max((dword)128, max(2 * GetSize(), GetSize() + sz))); - #endif - Bufr(); - ptr = buffer + p; - } - memcpy(ptr, d, sz); - ptr += sz; -} - -void StringStream::_Put(int w) -{ - byte h = w; - _Put(&h, 1); -} - -dword StringStream::_Get(void *data, dword sz) -{ - dword read = min(dword(rdlim - ptr), sz); - memcpy(data, ptr, read); - ptr += read; - return read; -} - -int StringStream::_Get() -{ - return ptr < rdlim ? *ptr++ : -1; -} - -int StringStream::_Term() { - return ptr < rdlim ? *ptr : -1; -} - -void StringStream::Seek(dword pos) { - size = max(size, (dword)(ptr - buffer)); - if(pos + buffer > rdlim) { - Writes(); - wdata.SetLength(pos + 100); - Bufr(); - } - ptr = buffer + min(GetSize(), pos); -} - -void StringStream::SetSize(dword asize) { - Writes(); - dword p = ptr - buffer; - Seek(asize); - Bufr(); - size = asize; - ptr = min(buffer + p, buffer + size); -} - -bool StringStream::IsOpen() const { - return true; -} diff --git a/uppdev/StringStream/sstrm.h b/uppdev/StringStream/sstrm.h deleted file mode 100644 index 127a801f1..000000000 --- a/uppdev/StringStream/sstrm.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _StringStream_sstrm_h_ -#define _StringStream_sstrm_h_ - -#include - -#define StringStream StringStream2 - -#endif