mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
Add a picture viewer
Change-Id: I35dd150f415119e80f7463515a70e2d9bd058a14
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -20,5 +20,9 @@ kandinsky/fonts/rasterizer
|
||||
kandinsky/src/font.c
|
||||
kandinsky/src/font.h
|
||||
|
||||
# No PicView generated files
|
||||
apps/picview/image.raw
|
||||
apps/picview/image.c
|
||||
|
||||
# Quiz output
|
||||
quiz/src/symbols.c
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
include apps/graph/Makefile
|
||||
#include apps/picview/Makefile
|
||||
|
||||
app_objs += $(addprefix apps/,\
|
||||
main.o\
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
#include "graph/graph_app.h"
|
||||
|
||||
#define USE_PIC_VIEW_APP 0
|
||||
#if USE_PIC_VIEW_APP
|
||||
#include "picview/picview_app.h"
|
||||
#endif
|
||||
|
||||
void ion_app() {
|
||||
#if USE_PIC_VIEW_APP
|
||||
PicViewApp picViewApp = PicViewApp();
|
||||
picViewApp.run();
|
||||
#endif
|
||||
GraphApp graphApp = GraphApp();
|
||||
graphApp.run();
|
||||
}
|
||||
|
||||
18
apps/picview/Makefile
Normal file
18
apps/picview/Makefile
Normal file
@@ -0,0 +1,18 @@
|
||||
app_objs += $(addprefix apps/picview/,\
|
||||
pic_view.o\
|
||||
picview_app.o\
|
||||
picview_controller.o\
|
||||
)
|
||||
|
||||
apps/picview/pic_view.cpp: apps/picview/image.c
|
||||
|
||||
apps/picview/image.c: apps/picview/image.raw
|
||||
@echo "RAW2C $@"
|
||||
@echo "const /* Needed otherwise the image will eat up all RAM */" > $@
|
||||
@xxd -i $^ >> $@
|
||||
|
||||
apps/picview/image.raw: apps/picview/image.png
|
||||
@echo "PNG2RAW $@"
|
||||
@ffmpeg -loglevel panic -vcodec png -i $^ -vcodec rawvideo -f rawvideo -pix_fmt rgb565 $@
|
||||
|
||||
products += $(addprefix apps/picview/, image.raw image.c)
|
||||
20
apps/picview/pic_view.cpp
Normal file
20
apps/picview/pic_view.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
#include "pic_view.h"
|
||||
#include <assert.h>
|
||||
|
||||
PicView::PicView() :
|
||||
ChildlessView() {
|
||||
}
|
||||
|
||||
#include "image.c"
|
||||
|
||||
void PicView::drawRect(KDContext * ctx, KDRect rect) const {
|
||||
KDColor * pixels = (KDColor *)apps_picview_image_raw;
|
||||
KDCoordinate width = bounds().width();
|
||||
KDCoordinate height = bounds().height();
|
||||
assert(apps_picview_image_raw_len == width*height*sizeof(KDColor));
|
||||
for (int j=0; j<height; j++) {
|
||||
for (int i=0; i<width; i++) {
|
||||
ctx->setPixel(KDPoint(i,j), pixels[j*width+i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
12
apps/picview/pic_view.h
Normal file
12
apps/picview/pic_view.h
Normal file
@@ -0,0 +1,12 @@
|
||||
#ifndef PICVIEW_PIC_VIEW_H
|
||||
#define PICVIEW_PIC_VIEW_H
|
||||
|
||||
#include <escher.h>
|
||||
|
||||
class PicView : public ChildlessView {
|
||||
public:
|
||||
PicView();
|
||||
void drawRect(KDContext * ctx, KDRect rect) const override;
|
||||
};
|
||||
|
||||
#endif
|
||||
11
apps/picview/picview_app.cpp
Normal file
11
apps/picview/picview_app.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#include "picview_app.h"
|
||||
|
||||
PicViewApp::PicViewApp() :
|
||||
App(),
|
||||
m_picViewController(PicViewController())
|
||||
{
|
||||
}
|
||||
|
||||
ViewController * PicViewApp::rootViewController() {
|
||||
return &m_picViewController;
|
||||
}
|
||||
16
apps/picview/picview_app.h
Normal file
16
apps/picview/picview_app.h
Normal file
@@ -0,0 +1,16 @@
|
||||
#ifndef PICVIEW_PICVIEW_APP_H
|
||||
#define PICVIEW_PICVIEW_APP_H
|
||||
|
||||
#include <escher.h>
|
||||
#include "picview_controller.h"
|
||||
|
||||
class PicViewApp : public App {
|
||||
public:
|
||||
PicViewApp();
|
||||
protected:
|
||||
ViewController * rootViewController() override;
|
||||
private:
|
||||
PicViewController m_picViewController;
|
||||
};
|
||||
|
||||
#endif
|
||||
18
apps/picview/picview_controller.cpp
Normal file
18
apps/picview/picview_controller.cpp
Normal file
@@ -0,0 +1,18 @@
|
||||
#include "picview_controller.h"
|
||||
|
||||
PicViewController::PicViewController() :
|
||||
ViewController(),
|
||||
m_view(PicView())
|
||||
{
|
||||
}
|
||||
|
||||
View * PicViewController::view() {
|
||||
return &m_view;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
const char * PicViewController::title() const {
|
||||
return "PicView";
|
||||
}
|
||||
*/
|
||||
15
apps/picview/picview_controller.h
Normal file
15
apps/picview/picview_controller.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#ifndef PICVIEW_PICVIEW_CONTROLLER_H
|
||||
#define PICVIEW_PICVIEW_CONTROLLER_H
|
||||
|
||||
#include <escher.h>
|
||||
#include "pic_view.h"
|
||||
|
||||
class PicViewController : public ViewController {
|
||||
public:
|
||||
PicViewController();
|
||||
View * view() override;
|
||||
private:
|
||||
PicView m_view;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user