aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt79
-rw-r--r--src/libui_sdl/libui/unix/draw.c53
-rw-r--r--src/libui_sdl/libui/unix/draw.h8
-rw-r--r--src/libui_sdl/libui/unix/stddialogs.c3
4 files changed, 130 insertions, 13 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5f96e16..85e66f5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,10 +6,8 @@ SET(PROJECT_WX melonDS)
PROJECT(${PROJECT_WX})
SET(SOURCES
- src/wx/main.cpp
- src/wx/EmuConfig.cpp
- src/wx/InputConfig.cpp
- src/wx/Platform.cpp
+ src/libui_sdl/main.cpp
+ src/libui_sdl/Platform.cpp
src/ARM.cpp
src/ARMInterpreter.cpp
src/ARMInterpreter_ALU.cpp
@@ -27,16 +25,64 @@ SET(SOURCES
src/RTC.cpp
src/SPI.cpp
src/SPU.cpp
- src/Wifi.cpp)
+ src/Wifi.cpp
+ src/libui_sdl/libui/common/areaevents.c
+ src/libui_sdl/libui/common/control.c
+ src/libui_sdl/libui/common/debug.c
+ src/libui_sdl/libui/common/matrix.c
+ src/libui_sdl/libui/common/shouldquit.c
+ src/libui_sdl/libui/common/userbugs.c
+ src/libui_sdl/libui/unix/alloc.c
+ src/libui_sdl/libui/unix/area.c
+ src/libui_sdl/libui/unix/box.c
+ src/libui_sdl/libui/unix/button.c
+ src/libui_sdl/libui/unix/cellrendererbutton.c
+ src/libui_sdl/libui/unix/checkbox.c
+ src/libui_sdl/libui/unix/child.c
+ src/libui_sdl/libui/unix/colorbutton.c
+ src/libui_sdl/libui/unix/combobox.c
+ src/libui_sdl/libui/unix/control.c
+ src/libui_sdl/libui/unix/datetimepicker.c
+ src/libui_sdl/libui/unix/debug.c
+ src/libui_sdl/libui/unix/draw.c
+ src/libui_sdl/libui/unix/drawmatrix.c
+ src/libui_sdl/libui/unix/drawpath.c
+ src/libui_sdl/libui/unix/drawtext.c
+ src/libui_sdl/libui/unix/editablecombo.c
+ src/libui_sdl/libui/unix/entry.c
+ src/libui_sdl/libui/unix/fontbutton.c
+ src/libui_sdl/libui/unix/form.c
+ src/libui_sdl/libui/unix/future.c
+ src/libui_sdl/libui/unix/graphemes.c
+ src/libui_sdl/libui/unix/grid.c
+ src/libui_sdl/libui/unix/group.c
+ src/libui_sdl/libui/unix/image.c
+ src/libui_sdl/libui/unix/label.c
+ src/libui_sdl/libui/unix/main.c
+ src/libui_sdl/libui/unix/menu.c
+ src/libui_sdl/libui/unix/multilineentry.c
+ src/libui_sdl/libui/unix/progressbar.c
+ src/libui_sdl/libui/unix/radiobuttons.c
+ src/libui_sdl/libui/unix/separator.c
+ src/libui_sdl/libui/unix/slider.c
+ src/libui_sdl/libui/unix/spinbox.c
+ src/libui_sdl/libui/unix/stddialogs.c
+ src/libui_sdl/libui/unix/tab.c
+ src/libui_sdl/libui/unix/text.c
+ src/libui_sdl/libui/unix/util.c
+ src/libui_sdl/libui/unix/window.c)
if (UNIX)
-find_package(GTK2 2.0 REQUIRED)
-include_directories(${GTK2_INCLUDE_DIRS})
-endif (UNIX)
+ FIND_PACKAGE(PkgConfig REQUIRED)
+ PKG_CHECK_MODULES(GTK3 REQUIRED gtk+-3.0)
+
+ INCLUDE_DIRECTORIES(${GTK3_INCLUDE_DIRS})
+ LINK_LIBRARIES(${GTK3_LIBRARIES})
-find_package(wxWidgets REQUIRED)
-include(${wxWidgets_USE_FILE})
-link_libraries(${wxWidgets_LIBRARIES})
+ ADD_DEFINITIONS(${GTK3_CFLAGS_OTHER})
+
+ LINK_LIBRARIES("dl")
+endif (UNIX)
find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIR})
@@ -45,6 +91,15 @@ link_libraries(${SDL2_LIBRARIES})
add_executable(${PROJECT_WX} ${SOURCES})
target_link_libraries(${PROJECT_WX})
-set(CMAKE_BUILD_TYPE Release)
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE Release)
+endif()
+
+if(CMAKE_BUILD_TYPE EQUAL Debug)
+set(CMAKE_CXX_FLAGS "-g")
+endif()
+if(CMAKE_BUILD_TYPE EQUAL Release)
+set(CMAKE_CXX_FLAGS "-O3 -flto")
+endif()
install(TARGETS ${PROJECT_WX} RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
diff --git a/src/libui_sdl/libui/unix/draw.c b/src/libui_sdl/libui/unix/draw.c
index 2d7a636..16ff986 100644
--- a/src/libui_sdl/libui/unix/draw.c
+++ b/src/libui_sdl/libui/unix/draw.c
@@ -139,3 +139,56 @@ void uiDrawRestore(uiDrawContext *c)
{
cairo_restore(c->cr);
}
+
+
+// bitmap API
+
+uiDrawBitmap* uiDrawNewBitmap(uiDrawContext* c, int width, int height)
+{
+ /*uiDrawBitmap* bmp;
+ HRESULT hr;
+
+ bmp = uiNew(uiDrawBitmap);
+
+ D2D1_BITMAP_PROPERTIES bp2 = D2D1::BitmapProperties();
+ bp2.dpiX = 0;
+ bp2.dpiY = 0;
+ bp2.pixelFormat = D2D1::PixelFormat(DXGI_FORMAT_R8G8B8A8_UNORM, D2D1_ALPHA_MODE_IGNORE);
+ //bp2.pixelFormat = D2D1::PixelFormat(DXGI_FORMAT_B8G8R8A8_UNORM, D2D1_ALPHA_MODE_IGNORE);
+ // TODO: fallback: convert to BGRA if needed (RGBA only works in hardware mode)
+
+ c->rt->BeginDraw();
+
+ hr = c->rt->CreateBitmap(D2D1::SizeU(width,height), NULL, 0, &bp2, &bmp->bmp);
+ if (hr != S_OK)
+ logHRESULT(L"error creating bitmap", hr);
+
+ c->rt->EndDraw();
+
+ bmp->Width = width;
+ bmp->Height = height;
+ bmp->Stride = width*4;
+
+ return bmp;*/
+ return NULL;
+}
+
+void uiDrawBitmapUpdate(uiDrawBitmap* bmp, const void* data)
+{
+ //D2D1_RECT_U rekt = D2D1::RectU(0, 0, bmp->Width, bmp->Height);
+ //bmp->bmp->CopyFromMemory(&rekt, data, bmp->Stride);
+}
+
+void uiDrawBitmapDraw(uiDrawContext* c, uiDrawBitmap* bmp, uiRect* srcrect, uiRect* dstrect)
+{
+ /*D2D_RECT_F _srcrect = D2D1::RectF(srcrect->X, srcrect->Y, srcrect->X+srcrect->Width, srcrect->Y+srcrect->Height);
+ D2D_RECT_F _dstrect = D2D1::RectF(dstrect->X, dstrect->Y, dstrect->X+dstrect->Width, dstrect->Y+dstrect->Height);
+
+ c->rt->DrawBitmap(bmp->bmp, &_dstrect, 1.0f, D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, &_srcrect);*/
+}
+
+void uiDrawFreeBitmap(uiDrawBitmap* bmp)
+{
+ //bmp->bmp->Release();
+ //uiFree(bmp);
+}
diff --git a/src/libui_sdl/libui/unix/draw.h b/src/libui_sdl/libui/unix/draw.h
index dbd82ff..db4612c 100644
--- a/src/libui_sdl/libui/unix/draw.h
+++ b/src/libui_sdl/libui/unix/draw.h
@@ -5,6 +5,14 @@ struct uiDrawContext {
cairo_t *cr;
};
+struct uiDrawBitmap {
+ int Width;
+ int Height;
+ int Stride;
+
+ // add cairo shit here
+};
+
// drawpath.c
extern void runPath(uiDrawPath *p, cairo_t *cr);
extern uiDrawFillMode pathFillMode(uiDrawPath *path);
diff --git a/src/libui_sdl/libui/unix/stddialogs.c b/src/libui_sdl/libui/unix/stddialogs.c
index edce773..9d7b62a 100644
--- a/src/libui_sdl/libui/unix/stddialogs.c
+++ b/src/libui_sdl/libui/unix/stddialogs.c
@@ -38,6 +38,7 @@ static char *filedialog(GtkWindow *parent, GtkFileChooserAction mode, const gcha
{
if (*j == ';')
{
+ *j = '\0';
gtk_file_filter_add_pattern(filter, fp);
fp = j+1;
}
@@ -47,7 +48,7 @@ static char *filedialog(GtkWindow *parent, GtkFileChooserAction mode, const gcha
break;
}
}
-
+ printf("add filter\n");
gtk_file_chooser_add_filter(fc, filter);
}
else