Bläddra i källkod

Merge branch 'master' of https://git.winfor.ch/nicolas/Almond

Nicolas Winkler 4 år sedan
förälder
incheckning
24cf56d87b

+ 1 - 1
Almond.ui

@@ -35,7 +35,7 @@
     </sizepolicy>
    </property>
    <property name="features">
-    <set>QDockWidget::AllDockWidgetFeatures</set>
+    <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
    </property>
    <property name="allowedAreas">
     <set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>

+ 9 - 1
EscapeTimeVisualWidget.cpp

@@ -14,9 +14,17 @@
 
 ETVImage::ETVImage(EscapeTimeVisualWidget& owner,
                    const Bitmap<float>& img) :
+    ETVImage{ owner, owner.context(), img }
+{
+}
+
+
+ETVImage::ETVImage(EscapeTimeVisualWidget& owner,
+                   QOpenGLContext* context,
+                   const Bitmap<float>& img) :
     owner{ owner }
 {
-    auto& gl = *QOpenGLContext::currentContext()->functions();
+    auto& gl = *context->functions();
     gl.glGenTextures(1, &textureId);
     gl.glActiveTexture(GL_TEXTURE0);
     gl.glBindTexture(GL_TEXTURE_2D, textureId);

+ 3 - 0
EscapeTimeVisualWidget.h

@@ -17,6 +17,9 @@ class ETVImage
 public:
     ETVImage(EscapeTimeVisualWidget& owner,
              const Bitmap<float>& img);
+    ETVImage(EscapeTimeVisualWidget& owner,
+             QOpenGLContext* context,
+             const Bitmap<float>& img);
     ~ETVImage(void);
 
     void draw(float x, float y, float w, float h,

+ 11 - 3
FractalZoomWidget.cpp

@@ -149,16 +149,24 @@ TextureUploader::TextureUploader(EscapeTimeVisualWidget& shareWith, QObject* par
     owner{ shareWith }
 {
     this->context = new QOpenGLContext(this);
+    this->surface = new QOffscreenSurface(owner.context()->screen(), this);
+    surface->create();
     this->context->setFormat(owner.context()->format());
     this->context->setScreen(owner.context()->screen());
     this->context->setShareContext(owner.context());
     bool created = this->context->create();
+    printf("is created: %d\n", created);
 }
 
 
 void TextureUploader::upload(int level, GridIndex i, GridIndex j, Bitmap<float>* bmp)
 {
-    auto etvImg = std::make_shared<ETVImage>(owner, *bmp);
+    bool isCurrent = context->makeCurrent(surface);
+    if (!isCurrent) {
+        printf("texture redirected");
+        return;
+    }
+    auto etvImg = std::make_shared<ETVImage>(owner, context, *bmp);
     delete bmp;
     bmp = nullptr;
     uploaded(level, i, j, std::move(etvImg));
@@ -412,10 +420,10 @@ void FractalZoomWidget::initializeGL(void)
 
 
     if (useUploadThread) {
-        uploader = new TextureUploader(*this, this);
+        uploader = new TextureUploader(*this);
         uploadeThread = new QThread(this);
-        uploader->moveToThread(uploadeThread);
         uploadeThread->start();
+        uploader->moveToThread(uploadeThread);
         connect(&calcer, &Calcer::done, uploader, &TextureUploader::upload);
         connect(uploader, &TextureUploader::uploaded, this, &FractalZoomWidget::cellReadyTex);
     }

+ 3 - 1
FractalZoomWidget.h

@@ -7,6 +7,7 @@
 
 #include <QThreadPool>
 #include <QMutex>
+#include <QOffscreenSurface>
 
 class FractalZoomWidget;
 
@@ -73,6 +74,7 @@ class TextureUploader :
     Q_OBJECT
 
     QOpenGLContext* context;
+    QOffscreenSurface* surface;
     EscapeTimeVisualWidget& owner;
 public:
     TextureUploader(EscapeTimeVisualWidget& shareWith, QObject* parent = nullptr);
@@ -97,7 +99,7 @@ class FractalZoomWidget :
 
     ETVImage* emptyImage;
 
-    const bool useUploadThread = true;
+    const bool useUploadThread = false;
     TextureUploader* uploader;
     QThread* uploadeThread;
 

+ 1 - 0
GradientWidget.cpp

@@ -375,6 +375,7 @@ void GradientWidget::removeSelectedHandle(void)
         selectedHandle = -1;
         updateGradient();
         update();
+        emit gradientChanged();
     }
 }
 

+ 2 - 2
installer/config.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Installer>
     <Name>Almond</Name>
-    <Version>1.0.0</Version>
+    <Version>1.1.0</Version>
     <Title>Almond Installer</Title>
-    <Publisher>Nico</Publisher>
+    <Publisher>Nicolas Winkler</Publisher>
     <StartMenuDir>Almond</StartMenuDir>
     <TargetDir>@HomeDir@/Almond</TargetDir>
     <AdminTargetDir>@ApplicationsDir@/Almond</AdminTargetDir>

+ 1 - 1
installer/packages/almond/meta/package.xml

@@ -3,7 +3,7 @@
     <DisplayName>Almond</DisplayName>
     <Description>Almond Fractal Generator</Description>
     <Version>1.0.0</Version>
-    <ReleaseDate>2020-05-04</ReleaseDate>
+    <ReleaseDate>2020-05-28</ReleaseDate>
     <Licenses>
         <License name="zlib/libpng License" file="zlib.txt" />
     </Licenses>