mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 03:18:11 +00:00
Introduce LibCore and move GElapsedTimer => CElapsedTimer.
I need a layer somewhere between AK (usable both by userspace and kernel) and LibGUI (usable by userspace except WindowServer.) So here's LibCore.
This commit is contained in:
parent
a74f3615ac
commit
5e0577a042
21 changed files with 98 additions and 37 deletions
|
@ -14,12 +14,12 @@ DEFINES = -DSERENITY -DSANITIZE_PTRS -DUSERLAND
|
||||||
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
||||||
CXX = i686-pc-serenity-g++
|
CXX = i686-pc-serenity-g++
|
||||||
LD = i686-pc-serenity-g++
|
LD = i686-pc-serenity-g++
|
||||||
LDFLAGS = -L../../LibC -L../../LibGUI
|
LDFLAGS = -L../../LibC -L../../LibCore -L../../LibGUI
|
||||||
|
|
||||||
all: $(APP)
|
all: $(APP)
|
||||||
|
|
||||||
$(APP): $(OBJS)
|
$(APP): $(OBJS)
|
||||||
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lc
|
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lcore -lc
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
|
@ -15,12 +15,12 @@ CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STA
|
||||||
CXX = i686-pc-serenity-g++
|
CXX = i686-pc-serenity-g++
|
||||||
LD = i686-pc-serenity-g++
|
LD = i686-pc-serenity-g++
|
||||||
AR = i686-pc-serenity-ar
|
AR = i686-pc-serenity-ar
|
||||||
LDFLAGS = -L../../LibC -L../../LibGUI
|
LDFLAGS = -L../../LibC -L../../LibCore -L../../LibGUI
|
||||||
|
|
||||||
all: $(APP)
|
all: $(APP)
|
||||||
|
|
||||||
$(APP): $(OBJS)
|
$(APP): $(OBJS)
|
||||||
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lc
|
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lcore -lc
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
|
@ -16,12 +16,12 @@ DEFINES = -DSERENITY -DSANITIZE_PTRS -DUSERLAND
|
||||||
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
||||||
CXX = i686-pc-serenity-g++
|
CXX = i686-pc-serenity-g++
|
||||||
LD = i686-pc-serenity-g++
|
LD = i686-pc-serenity-g++
|
||||||
LDFLAGS = -L../../LibC -L../../LibGUI
|
LDFLAGS = -L../../LibC -L../../LibCore -L../../LibGUI
|
||||||
|
|
||||||
all: $(APP)
|
all: $(APP)
|
||||||
|
|
||||||
$(APP): $(OBJS)
|
$(APP): $(OBJS)
|
||||||
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lc
|
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lcore -lc
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
|
@ -18,12 +18,12 @@ CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STA
|
||||||
CXX = i686-pc-serenity-g++
|
CXX = i686-pc-serenity-g++
|
||||||
LD = i686-pc-serenity-g++
|
LD = i686-pc-serenity-g++
|
||||||
AR = i686-pc-serenity-ar
|
AR = i686-pc-serenity-ar
|
||||||
LDFLAGS = -L../../LibC -L../../LibGUI
|
LDFLAGS = -L../../LibC -L../../LibCore -L../../LibGUI
|
||||||
|
|
||||||
all: $(APP)
|
all: $(APP)
|
||||||
|
|
||||||
$(APP): $(OBJS)
|
$(APP): $(OBJS)
|
||||||
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lc
|
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lcore -lc
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
|
@ -24,12 +24,12 @@ CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STA
|
||||||
CXX = i686-pc-serenity-g++
|
CXX = i686-pc-serenity-g++
|
||||||
LD = i686-pc-serenity-g++
|
LD = i686-pc-serenity-g++
|
||||||
AR = i686-pc-serenity-ar
|
AR = i686-pc-serenity-ar
|
||||||
LDFLAGS = -L../../LibC -L../../LibGUI
|
LDFLAGS = -L../../LibC -L../../LibCore -L../../LibGUI
|
||||||
|
|
||||||
all: $(APP)
|
all: $(APP)
|
||||||
|
|
||||||
$(APP): $(OBJS)
|
$(APP): $(OBJS)
|
||||||
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lc
|
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lcore -lc
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
|
@ -14,12 +14,12 @@ DEFINES = -DSERENITY -DSANITIZE_PTRS -DUSERLAND
|
||||||
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
||||||
CXX = i686-pc-serenity-g++
|
CXX = i686-pc-serenity-g++
|
||||||
LD = i686-pc-serenity-g++
|
LD = i686-pc-serenity-g++
|
||||||
LDFLAGS = -L../../LibC -L../../LibGUI
|
LDFLAGS = -L../../LibC -L../../LibCore -L../../LibGUI
|
||||||
|
|
||||||
all: $(APP)
|
all: $(APP)
|
||||||
|
|
||||||
$(APP): $(OBJS)
|
$(APP): $(OBJS)
|
||||||
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lc
|
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lcore -lc
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
|
@ -17,12 +17,12 @@ DEFINES = -DSERENITY -DSANITIZE_PTRS -DUSERLAND
|
||||||
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
||||||
CXX = i686-pc-serenity-g++
|
CXX = i686-pc-serenity-g++
|
||||||
LD = i686-pc-serenity-g++
|
LD = i686-pc-serenity-g++
|
||||||
LDFLAGS = -L../../LibC -L../../LibGUI
|
LDFLAGS = -L../../LibC -L../../LibCore -L../../LibGUI
|
||||||
|
|
||||||
all: $(APP)
|
all: $(APP)
|
||||||
|
|
||||||
$(APP): $(OBJS)
|
$(APP): $(OBJS)
|
||||||
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lc
|
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lcore -lc
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
|
@ -16,12 +16,12 @@ DEFINES = -DSERENITY -DSANITIZE_PTRS -DUSERLAND
|
||||||
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
||||||
CXX = i686-pc-serenity-g++
|
CXX = i686-pc-serenity-g++
|
||||||
LD = i686-pc-serenity-g++
|
LD = i686-pc-serenity-g++
|
||||||
LDFLAGS = -L../../LibC -L../../LibGUI
|
LDFLAGS = -L../../LibC -L../../LibCore -L../../LibGUI
|
||||||
|
|
||||||
all: $(APP)
|
all: $(APP)
|
||||||
|
|
||||||
$(APP): $(OBJS)
|
$(APP): $(OBJS)
|
||||||
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lc
|
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lcore -lc
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
|
@ -15,12 +15,12 @@ DEFINES = -DSERENITY -DSANITIZE_PTRS -DUSERLAND
|
||||||
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
||||||
CXX = i686-pc-serenity-g++
|
CXX = i686-pc-serenity-g++
|
||||||
LD = i686-pc-serenity-g++
|
LD = i686-pc-serenity-g++
|
||||||
LDFLAGS = -L../../LibC -L../../LibGUI
|
LDFLAGS = -L../../LibC -L../../LibCore -L../../LibGUI
|
||||||
|
|
||||||
all: $(APP)
|
all: $(APP)
|
||||||
|
|
||||||
$(APP): $(OBJS)
|
$(APP): $(OBJS)
|
||||||
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lc
|
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lcore -lc
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
|
@ -14,12 +14,12 @@ DEFINES = -DSERENITY -DSANITIZE_PTRS -DUSERLAND
|
||||||
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
||||||
CXX = i686-pc-serenity-g++
|
CXX = i686-pc-serenity-g++
|
||||||
LD = i686-pc-serenity-g++
|
LD = i686-pc-serenity-g++
|
||||||
LDFLAGS = -L../../LibC -L../../LibGUI
|
LDFLAGS = -L../../LibC -L../../LibCore -L../../LibGUI
|
||||||
|
|
||||||
all: $(APP)
|
all: $(APP)
|
||||||
|
|
||||||
$(APP): $(OBJS)
|
$(APP): $(OBJS)
|
||||||
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lc
|
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lcore -lc
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
|
@ -10,6 +10,8 @@ $make_cmd -C ../LibC && \
|
||||||
$make_cmd -C ../LibM clean && \
|
$make_cmd -C ../LibM clean && \
|
||||||
$make_cmd -C ../LibM && \
|
$make_cmd -C ../LibM && \
|
||||||
(cd ../LibM && ./install.sh) && \
|
(cd ../LibM && ./install.sh) && \
|
||||||
|
$make_cmd -C ../LibCore clean && \
|
||||||
|
$make_cmd -C ../LibCore && \
|
||||||
$make_cmd -C ../Servers/LookupServer clean && \
|
$make_cmd -C ../Servers/LookupServer clean && \
|
||||||
$make_cmd -C ../Servers/LookupServer && \
|
$make_cmd -C ../Servers/LookupServer && \
|
||||||
$make_cmd -C ../Servers/WindowServer clean && \
|
$make_cmd -C ../Servers/WindowServer clean && \
|
||||||
|
|
3
LibCore/.gitignore
vendored
Normal file
3
LibCore/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
*.o
|
||||||
|
*.d
|
||||||
|
libcore.a
|
|
@ -1,8 +1,8 @@
|
||||||
#include <LibGUI/GElapsedTimer.h>
|
#include <LibCore/CElapsedTimer.h>
|
||||||
#include <AK/Assertions.h>
|
#include <AK/Assertions.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
|
||||||
void GElapsedTimer::start()
|
void CElapsedTimer::start()
|
||||||
{
|
{
|
||||||
m_valid = true;
|
m_valid = true;
|
||||||
gettimeofday(&m_start_time, nullptr);
|
gettimeofday(&m_start_time, nullptr);
|
||||||
|
@ -18,7 +18,7 @@ inline void timersub(const struct timeval* a, const struct timeval* b, struct ti
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int GElapsedTimer::elapsed() const
|
int CElapsedTimer::elapsed() const
|
||||||
{
|
{
|
||||||
ASSERT(is_valid());
|
ASSERT(is_valid());
|
||||||
struct timeval now;
|
struct timeval now;
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
class GElapsedTimer {
|
class CElapsedTimer {
|
||||||
public:
|
public:
|
||||||
GElapsedTimer() { }
|
CElapsedTimer() { }
|
||||||
|
|
||||||
bool is_valid() const { return m_valid; }
|
bool is_valid() const { return m_valid; }
|
||||||
void start();
|
void start();
|
32
LibCore/Makefile
Normal file
32
LibCore/Makefile
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
OBJS = \
|
||||||
|
CElapsedTimer.o
|
||||||
|
|
||||||
|
LIBS =
|
||||||
|
|
||||||
|
LIBRARY = libcore.a
|
||||||
|
STANDARD_FLAGS = -std=c++17 -Wno-sized-deallocation
|
||||||
|
WARNING_FLAGS = -Wextra -Wall -Wundef -Wcast-qual -Wwrite-strings -Wimplicit-fallthrough
|
||||||
|
FLAVOR_FLAGS = -fno-exceptions -fno-rtti
|
||||||
|
OPTIMIZATION_FLAGS = -Os
|
||||||
|
INCLUDE_FLAGS = -I../LibC -I../Servers -I.. -I.
|
||||||
|
|
||||||
|
DEFINES = -DSERENITY -DUSERLAND -DSANITIZE_PTRS -DLIBGUI
|
||||||
|
|
||||||
|
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
||||||
|
CXX = i686-pc-serenity-g++
|
||||||
|
LD = i686-pc-serenity-ld
|
||||||
|
AR = i686-pc-serenity-ar
|
||||||
|
|
||||||
|
all: $(LIBRARY)
|
||||||
|
|
||||||
|
$(LIBRARY): $(OBJS)
|
||||||
|
@echo "LIB $@"; $(AR) rcs $@ $(OBJS) $(LIBS)
|
||||||
|
|
||||||
|
.cpp.o:
|
||||||
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
-include $(OBJS:%.o=%.d)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@echo "CLEAN"; rm -f $(LIBRARY) $(OBJS) *.d
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <LibGUI/GElapsedTimer.h>
|
#include <LibCore/CElapsedTimer.h>
|
||||||
#include <LibGUI/GEvent.h>
|
#include <LibGUI/GEvent.h>
|
||||||
#include <LibGUI/GObject.h>
|
#include <LibGUI/GObject.h>
|
||||||
#include <SharedGraphics/Rect.h>
|
#include <SharedGraphics/Rect.h>
|
||||||
|
@ -174,5 +174,5 @@ private:
|
||||||
bool m_fill_with_background_color { false };
|
bool m_fill_with_background_color { false };
|
||||||
bool m_visible { true };
|
bool m_visible { true };
|
||||||
|
|
||||||
GElapsedTimer m_click_clock;
|
CElapsedTimer m_click_clock;
|
||||||
};
|
};
|
||||||
|
|
|
@ -52,7 +52,6 @@ LIBGUI_OBJS = \
|
||||||
GAbstractView.o \
|
GAbstractView.o \
|
||||||
GItemView.o \
|
GItemView.o \
|
||||||
GIcon.o \
|
GIcon.o \
|
||||||
GElapsedTimer.o \
|
|
||||||
GFrame.o \
|
GFrame.o \
|
||||||
GTreeView.o \
|
GTreeView.o \
|
||||||
GFileSystemModel.o \
|
GFileSystemModel.o \
|
||||||
|
@ -69,8 +68,6 @@ LIBGUI_OBJS = \
|
||||||
|
|
||||||
OBJS = $(SHAREDGRAPHICS_OBJS) $(LIBGUI_OBJS)
|
OBJS = $(SHAREDGRAPHICS_OBJS) $(LIBGUI_OBJS)
|
||||||
|
|
||||||
LIBS = -lc
|
|
||||||
|
|
||||||
LIBRARY = libgui.a
|
LIBRARY = libgui.a
|
||||||
STANDARD_FLAGS = -std=c++17 -Wno-sized-deallocation
|
STANDARD_FLAGS = -std=c++17 -Wno-sized-deallocation
|
||||||
WARNING_FLAGS = -Wextra -Wall -Wundef -Wcast-qual -Wwrite-strings -Wimplicit-fallthrough
|
WARNING_FLAGS = -Wextra -Wall -Wundef -Wcast-qual -Wwrite-strings -Wimplicit-fallthrough
|
||||||
|
@ -88,7 +85,7 @@ AR = i686-pc-serenity-ar
|
||||||
all: $(LIBRARY)
|
all: $(LIBRARY)
|
||||||
|
|
||||||
$(LIBRARY): $(OBJS)
|
$(LIBRARY): $(OBJS)
|
||||||
@echo "LIB $@"; $(AR) rcs $@ $(OBJS) $(LIBS)
|
@echo "LIB $@"; $(AR) rcs $@ $(OBJS)
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
|
@ -813,7 +813,6 @@ void WSWindowManager::compose()
|
||||||
dst.move_by(dirty_rect_in_window_coordinates.location());
|
dst.move_by(dirty_rect_in_window_coordinates.location());
|
||||||
|
|
||||||
m_back_painter->fill_rect(window.rect(), window.background_color());
|
m_back_painter->fill_rect(window.rect(), window.background_color());
|
||||||
|
|
||||||
m_back_painter->blit(dst, *backing_store, dirty_rect_in_window_coordinates, window.opacity());
|
m_back_painter->blit(dst, *backing_store, dirty_rect_in_window_coordinates, window.opacity());
|
||||||
|
|
||||||
if (backing_store->width() < window.width()) {
|
if (backing_store->width() < window.width()) {
|
||||||
|
|
|
@ -238,6 +238,33 @@ void Painter::blit_with_opacity(const Point& position, const GraphicsBitmap& sou
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Painter::blit_dimmed(const Point& position, const GraphicsBitmap& source, const Rect& src_rect)
|
||||||
|
{
|
||||||
|
Rect safe_src_rect = Rect::intersection(src_rect, source.rect());
|
||||||
|
Rect dst_rect(position, safe_src_rect.size());
|
||||||
|
dst_rect.move_by(state().translation);
|
||||||
|
auto clipped_rect = Rect::intersection(dst_rect, clip_rect());
|
||||||
|
if (clipped_rect.is_empty())
|
||||||
|
return;
|
||||||
|
const int first_row = clipped_rect.top() - dst_rect.top();
|
||||||
|
const int last_row = clipped_rect.bottom() - dst_rect.top();
|
||||||
|
const int first_column = clipped_rect.left() - dst_rect.left();
|
||||||
|
const int last_column = clipped_rect.right() - dst_rect.left();
|
||||||
|
RGBA32* dst = m_target->scanline(clipped_rect.y()) + clipped_rect.x();
|
||||||
|
const RGBA32* src = source.scanline(src_rect.top() + first_row) + src_rect.left() + first_column;
|
||||||
|
const size_t dst_skip = m_target->width();
|
||||||
|
const unsigned src_skip = source.width();
|
||||||
|
|
||||||
|
for (int row = first_row; row <= last_row; ++row) {
|
||||||
|
for (int x = 0; x <= (last_column - first_column); ++x) {
|
||||||
|
dst[x] = Color::from_rgba(src[x]).to_grayscale().darkened().value();
|
||||||
|
}
|
||||||
|
dst += dst_skip;
|
||||||
|
src += src_skip;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Painter::blit_with_alpha(const Point& position, const GraphicsBitmap& source, const Rect& src_rect)
|
void Painter::blit_with_alpha(const Point& position, const GraphicsBitmap& source, const Rect& src_rect)
|
||||||
{
|
{
|
||||||
ASSERT(source.has_alpha_channel());
|
ASSERT(source.has_alpha_channel());
|
||||||
|
|
|
@ -27,6 +27,7 @@ public:
|
||||||
void draw_focus_rect(const Rect&);
|
void draw_focus_rect(const Rect&);
|
||||||
void draw_scaled_bitmap(const Rect& dst_rect, const GraphicsBitmap&, const Rect& src_rect);
|
void draw_scaled_bitmap(const Rect& dst_rect, const GraphicsBitmap&, const Rect& src_rect);
|
||||||
void blit(const Point&, const GraphicsBitmap&, const Rect& src_rect, float opacity = 1.0f);
|
void blit(const Point&, const GraphicsBitmap&, const Rect& src_rect, float opacity = 1.0f);
|
||||||
|
void blit_dimmed(const Point&, const GraphicsBitmap&, const Rect& src_rect);
|
||||||
|
|
||||||
void draw_text(const Rect&, const char* text, int length, const Font&, TextAlignment = TextAlignment::TopLeft, Color = Color::Black, TextElision = TextElision::None);
|
void draw_text(const Rect&, const char* text, int length, const Font&, TextAlignment = TextAlignment::TopLeft, Color = Color::Black, TextElision = TextElision::None);
|
||||||
void draw_text(const Rect&, const char* text, int length, TextAlignment = TextAlignment::TopLeft, Color = Color::Black, TextElision = TextElision::None);
|
void draw_text(const Rect&, const char* text, int length, TextAlignment = TextAlignment::TopLeft, Color = Color::Black, TextElision = TextElision::None);
|
||||||
|
|
|
@ -98,7 +98,7 @@ CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(ARC
|
||||||
CXX = i686-pc-serenity-g++
|
CXX = i686-pc-serenity-g++
|
||||||
LD = i686-pc-serenity-g++
|
LD = i686-pc-serenity-g++
|
||||||
AR = i686-pc-serenity-r
|
AR = i686-pc-serenity-r
|
||||||
LDFLAGS = -L ../LibC
|
LDFLAGS = -L../LibC -L../LibCore -L../LibGUI
|
||||||
|
|
||||||
all: $(OBJS) $(APPS)
|
all: $(OBJS) $(APPS)
|
||||||
|
|
||||||
|
@ -169,13 +169,13 @@ more: more.o
|
||||||
$(LD) -o $@ $(LDFLAGS) $< -lc
|
$(LD) -o $@ $(LDFLAGS) $< -lc
|
||||||
|
|
||||||
guitest2: guitest2.o
|
guitest2: guitest2.o
|
||||||
$(LD) -o $@ $(LDFLAGS) -L../LibGUI $< -lgui -lc
|
$(LD) -o $@ $(LDFLAGS) $< -lgui -lcore -lc
|
||||||
|
|
||||||
sysctl: sysctl.o
|
sysctl: sysctl.o
|
||||||
$(LD) -o $@ $(LDFLAGS) $< -lc
|
$(LD) -o $@ $(LDFLAGS) $< -lc
|
||||||
|
|
||||||
pape: pape.o
|
pape: pape.o
|
||||||
$(LD) -o $@ $(LDFLAGS) -L../LibGUI $< -lgui -lc
|
$(LD) -o $@ $(LDFLAGS) $< -lgui -lcore -lc
|
||||||
|
|
||||||
cp: cp.o
|
cp: cp.o
|
||||||
$(LD) -o $@ $(LDFLAGS) $< -lc
|
$(LD) -o $@ $(LDFLAGS) $< -lc
|
||||||
|
@ -223,10 +223,10 @@ host: host.o
|
||||||
$(LD) -o $@ $(LDFLAGS) $< -lc
|
$(LD) -o $@ $(LDFLAGS) $< -lc
|
||||||
|
|
||||||
qs: qs.o
|
qs: qs.o
|
||||||
$(LD) -o $@ $(LDFLAGS) -L../LibGUI $< -lgui -lc
|
$(LD) -o $@ $(LDFLAGS) $< -lgui -lcore -lc
|
||||||
|
|
||||||
mv: mv.o
|
mv: mv.o
|
||||||
$(LD) -o $@ $(LDFLAGS) -L../LibGUI $< -lgui -lc
|
$(LD) -o $@ $(LDFLAGS) $< -lc
|
||||||
|
|
||||||
.cpp.o:
|
.cpp.o:
|
||||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue