Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Enabling DDS images in QT5.15.2
Forum Updated to NodeBB v4.3 + New Features

Enabling DDS images in QT5.15.2

Scheduled Pinned Locked Moved Solved General and Desktop
12 Posts 3 Posters 832 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E Offline
    E Offline
    eric_from_trainsim
    wrote on last edited by eric_from_trainsim
    #1

    Re: How to display .dds files

    Running into a problem that I think is half-solved.... This is for a Windows desktop only application that's written in C++ using QT, and is being built in NetBeans-20 using MinGW

    I'm locked into QT5. The rest is probably flexible...

    I've been a developer in different environments for a few years, but only know enough about QT and NetBeans to be able to spell them correctly... Please take that into account with your responses and don't assume I know anything obvious. I've only gotten as far as I have because of a great runbook for the 5.7 version.


    When I compile using QT5.7.0 with mingw530_32, DDS textures render just fine.

    I've used @Bonnie 's steps to invoke qmake to create the qdds.dll from the src folders, and get the positive responses, and they do appear in the plugin directory with today's timestamp on the files.

    When I compile using QT 5.15.2 with mingw810_64, DDS textures still render as black.


    Is there an extra step I need to take in Netbeans or elsewhere to make sure that the dds imagetype is being handled?

    1 Reply Last reply
    0
    • E eric_from_trainsim

      @ChrisW67 If I set the qt_plugins_debug=1 and run the EXE from a command prompt, the app fires up per normal, and I get nothing in the QDebug log or at the command prompt....

      All of the files that are in the deployment folder are from the bin of the versions compiled i.e. the 5.7 version including the qwindows all come from my QT/5.7/mingww53_32/bin or QT/5.7/mingww53_32/plugins/platforms directories, and the 5.15.2 version come from Qt/5.15.2/mingw81_64/bin and Qt/5.15.2/mingw81_64/plugins/platforms

      Contents are:

      Qt5WebSockets.dll
      Qt5Widgets.dll
      Qt5Network.dll
      Qt5Gui.dll
      Qt5Core.dll
      libstdc++-6.dll
      libwinpthread-1.dll
      libgcc_s_dw2-1.dll
      OpenAL32.dll
      platforms\qwindows.dll

      While I still can't get the 5.7 version to be portable, on a guess, I took the 5.15.2 version and added the plugins/imageformats directory to the distribution, and now it seems to be working. I've sent it out to some folks for testing to be certain, and should know more in about 12-15 hours.

      E Offline
      E Offline
      eric_from_trainsim
      wrote on last edited by
      #12

      Adding ./imageformats with the related DLL's in the application directory was indeed the missing step for me. While having everything within the EXE would be ideal, this approach is at least manageable given an open source project with maybe a couple hundred users worldwide.

      Thanks to @ChrisW67 and @SGaist for your replies.

      1 Reply Last reply
      0
      • C Offline
        C Offline
        ChrisW67
        wrote on last edited by
        #2

        @eric_from_trainsim It's not clear what "Bonnie's steps" are from your link.

        DDS in not built by default since Qt 5.8 for security reasons. The source code can be found here.

        Once you have built and installed the plugin in the plugins/imageformats folder there should be nothing else to do. It must be built with the same tool chain as the Qt it is being built for.

        You can use QT_PLUGINS_DEBUG to see if the plugin is detected and loaded successfully.

        E 1 Reply Last reply
        2
        • C ChrisW67

          @eric_from_trainsim It's not clear what "Bonnie's steps" are from your link.

          DDS in not built by default since Qt 5.8 for security reasons. The source code can be found here.

          Once you have built and installed the plugin in the plugins/imageformats folder there should be nothing else to do. It must be built with the same tool chain as the Qt it is being built for.

          You can use QT_PLUGINS_DEBUG to see if the plugin is detected and loaded successfully.

          E Offline
          E Offline
          eric_from_trainsim
          wrote on last edited by
          #3

          @ChrisW67 said in Enabling DDS images in QT5.15.2:

          @eric_from_trainsim It's not clear what "Bonnie's steps" are from your link.

          From the command prompt in the dds subdirectory, I executed "qmake"

          From the command prompt in the same subdirectory, executed "mingw32-make install"

          I'll see if I can get the debug to run within the app...

          C 1 Reply Last reply
          0
          • E eric_from_trainsim

            @ChrisW67 said in Enabling DDS images in QT5.15.2:

            @eric_from_trainsim It's not clear what "Bonnie's steps" are from your link.

            From the command prompt in the dds subdirectory, I executed "qmake"

            From the command prompt in the same subdirectory, executed "mingw32-make install"

            I'll see if I can get the debug to run within the app...

            C Offline
            C Offline
            ChrisW67
            wrote on last edited by
            #4

            @eric_from_trainsim As long as you ran the qmake from the correct install of Qt then this should probably have done it.

            I'll see if I can get the debug to run within the app...

            From a command prompt:

            set QT_PLUGINS_DEBUG=1
            .\yourprog.exe
            
            SGaistS 1 Reply Last reply
            0
            • C ChrisW67

              @eric_from_trainsim As long as you ran the qmake from the correct install of Qt then this should probably have done it.

              I'll see if I can get the debug to run within the app...

              From a command prompt:

              set QT_PLUGINS_DEBUG=1
              .\yourprog.exe
              
              SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #5

              Hi,

              Another option is to open the .pro file with Qt Creator. That way you ensure that you are using the expected Qt version and only have to add a step to install the plugin.

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              E 1 Reply Last reply
              0
              • SGaistS SGaist

                Hi,

                Another option is to open the .pro file with Qt Creator. That way you ensure that you are using the expected Qt version and only have to add a step to install the plugin.

                E Offline
                E Offline
                eric_from_trainsim
                wrote on last edited by
                #6

                @SGaist I'm not familiar with QT Creator... would that not possible with Netbeans as well?

                Here's the content of the pro file:

                # This file is generated automatically. Do not edit.
                # Use project properties -> Build -> Qt -> Expert -> Custom Definitions.
                TEMPLATE = app
                DESTDIR = dist/Release_x64/MinGW_64b-Windows
                TARGET = TSRE5
                VERSION = 0.7
                CONFIG -= debug_and_release app_bundle lib_bundle
                CONFIG += release 
                PKGCONFIG +=
                QT = core gui widgets network opengl
                SOURCES += AboutWindow.cpp AceLib.cpp ActLib.cpp ActionChooseDialog.cpp Activity.cpp ActivityEvent.cpp ActivityEventProperties.cpp ActivityEventWindow.cpp ActivityObject.cpp ActivityServiceProperties.cpp ActivityServiceWindow.cpp ActivityTimetable.cpp ActivityTimetableProperties.cpp ActivityTimetableWindow.cpp ActivityTools.cpp ActivityTrafficProperties.cpp ActivityTrafficWindow.cpp Brush.cpp CELoadWindow.cpp Camera.cpp CameraConsist.cpp CameraFree.cpp CameraRot.cpp CarSpawnerObj.cpp ChooseFileDialog.cpp ClickableLabel.cpp ClientInfo.cpp ClientUsersWindow.cpp ComplexLine.cpp ConEditorWindow.cpp ConInfoWidget.cpp ConLib.cpp ConListWidget.cpp ConUnitsWidget.cpp Consist.cpp ContentHierarchyInfo.cpp Coords.cpp CoordsGpx.cpp CoordsKml.cpp CoordsMkr.cpp CoordsRoutePlaces.cpp DynTrackObj.cpp EditFileNameDialog.cpp Eng.cpp EngInfoWidget.cpp EngLib.cpp EngListWidget.cpp Environment.cpp ErrorMessage.cpp ErrorMessageProperties.cpp ErrorMessagesLib.cpp ErrorMessagesWindow.cpp FileBuffer.cpp FileFunctions.cpp Flex.cpp ForestObj.cpp GLH.cpp GLMatrix.cpp GLUU.cpp Game.cpp GameObj.cpp GeoCoordinates.cpp GeoHgtFile.cpp GeoTerrainFile.cpp GeoTiffFile.cpp GeoTools.cpp GlobalDefinitions.cpp GroupObj.cpp GuiFunct.cpp GuiGlCompass.cpp HazardObj.cpp HeightWindow.cpp ImageLib.cpp Intersections.cpp LevelCrObj.cpp LoadWindow.cpp MapData.cpp MapDataOSM.cpp MapDataUrlImage.cpp MapLib.cpp MapWindow.cpp MstsSoundDefinition.cpp NaviBox.cpp NaviWindow.cpp NewRouteWindow.cpp OSMFeatures.cpp ObjFile.cpp ObjTools.cpp OglObj.cpp OpenGL3Renderer.cpp OrtsWeatherChange.cpp OverwriteDialog.cpp PaintTexLib.cpp ParserX.cpp Path.cpp PickupObj.cpp PlatformObj.cpp PlayActivitySelectWindow.cpp Pointer3d.cpp PoleObj.cpp ProceduralMstsDyntrack.cpp ProceduralShape.cpp PropertiesAbstract.cpp PropertiesActivityObject.cpp PropertiesActivityPath.cpp PropertiesCarspawner.cpp PropertiesConsist.cpp PropertiesDyntrack.cpp PropertiesForest.cpp PropertiesGroup.cpp PropertiesLevelCr.cpp PropertiesPickup.cpp PropertiesPlatform.cpp PropertiesRuler.cpp PropertiesSiding.cpp PropertiesSignal.cpp PropertiesSoundRegion.cpp PropertiesSoundSource.cpp PropertiesSpeedpost.cpp PropertiesStatic.cpp PropertiesTerrain.cpp PropertiesTrackItem.cpp PropertiesTrackObj.cpp PropertiesTransfer.cpp PropertiesUndefined.cpp QuadTree.cpp RandomConsist.cpp RandomTransformWorldObjDialog.cpp ReadFile.cpp Ref.cpp RenderItem.cpp Renderer.cpp Route.cpp RouteClient.cpp RouteEditorClient.cpp RouteEditorGLWidget.cpp RouteEditorServer.cpp RouteEditorWindow.cpp Ruch.cpp RulerObj.cpp SFile.cpp SFileC.cpp SFileX.cpp Service.cpp Shader.cpp ShapeHierarchyInfo.cpp ShapeHierarchyWindow.cpp ShapeInfoWidget.cpp ShapeLib.cpp ShapeTemplates.cpp ShapeTextureInfo.cpp ShapeTexturesWindow.cpp ShapeViewWindow.cpp ShapeViewerGLWidget.cpp ShapeViewerNavigatorWidget.cpp ShapeViewerWindow.cpp SigCfg.cpp SignalObj.cpp SignalShape.cpp SignalType.cpp SignalWindow.cpp SignalWindowLink.cpp SimpleHud.cpp Skydome.cpp SoundLib.cpp SoundList.cpp SoundManager.cpp SoundRegionObj.cpp SoundSource.cpp SoundSourceObj.cpp SoundVariables.cpp SpeedPost.cpp SpeedPostDAT.cpp SpeedpostObj.cpp StaticObj.cpp TDB.cpp TDBClient.cpp TFile.cpp TRitem.cpp TRnode.cpp TS.cpp TSection.cpp TSectionDAT.cpp TarFile.cpp Terrain.cpp TerrainClient.cpp TerrainInfo.cpp TerrainLib.cpp TerrainLibQt.cpp TerrainLibQtClient.cpp TerrainLibSimple.cpp TerrainTools.cpp TerrainTreeWindow.cpp TerrainWaterWindow.cpp TerrainWaterWindow2.cpp TexLib.cpp TextEditDialog.cpp TextObj.cpp Texture.cpp Tile.cpp TrWatermarkObj.cpp TrackItemObj.cpp TrackObj.cpp TrackShape.cpp Traffic.cpp TrainNetworkEng.cpp TransferObj.cpp TransformWorldObjDialog.cpp Trk.cpp TrkWindow.cpp Undo.cpp UnsavedDialog.cpp UriImageDrawThread.cpp Vector2f.cpp Vector2i.cpp Vector3f.cpp Vector4f.cpp WorldObj.cpp main.cpp
                HEADERS += AboutWindow.h AceLib.h ActLib.h ActionChooseDialog.h Activity.h ActivityEvent.h ActivityEventProperties.h ActivityEventWindow.h ActivityObject.h ActivityServiceProperties.h ActivityServiceWindow.h ActivityTimetable.h ActivityTimetableProperties.h ActivityTimetableWindow.h ActivityTools.h ActivityTrafficProperties.h ActivityTrafficWindow.h Brush.h CELoadWindow.h Camera.h CameraConsist.h CameraFree.h CameraRot.h CarSpawnerObj.h ChooseFileDialog.h ClickableLabel.h ClientInfo.h ClientUsersWindow.h ComplexLine.h ConEditorWindow.h ConInfoWidget.h ConLib.h ConListWidget.h ConUnitsWidget.h Consist.h ContentHierarchyInfo.h Coords.h CoordsGpx.h CoordsKml.h CoordsMkr.h CoordsRoutePlaces.h DynTrackObj.h EditFileNameDialog.h Eng.h EngInfoWidget.h EngLib.h EngListWidget.h Environment.h ErrorMessage.h ErrorMessageProperties.h ErrorMessagesLib.h ErrorMessagesWindow.h FileBuffer.h FileFunctions.h Flex.h ForestObj.h GLH.h GLMatrix.h GLUU.h Game.h GameObj.h GeoCoordinates.h GeoHgtFile.h GeoTerrainFile.h GeoTiffFile.h GeoTools.h GlobalDefinitions.h GroupObj.h GuiFunct.h GuiGlCompass.h HazardObj.h HeightWindow.h ImageLib.h Intersections.h LevelCrObj.h LoadWindow.h MapData.h MapDataOSM.h MapDataUrlImage.h MapLib.h MapWindow.h MstsSoundDefinition.h NaviBox.h NaviWindow.h NewRouteWindow.h OSMFeatures.h ObjFile.h ObjTools.h OglObj.h OpenGL3Renderer.h OrtsWeatherChange.h OverwriteDialog.h PaintTexLib.h ParserX.h Path.h PickupObj.h PlatformObj.h PlayActivitySelectWindow.h Pointer3d.h PoleObj.h ProceduralMstsDyntrack.h ProceduralShape.h PropertiesAbstract.h PropertiesActivityObject.h PropertiesActivityPath.h PropertiesCarspawner.h PropertiesConsist.h PropertiesDyntrack.h PropertiesForest.h PropertiesGroup.h PropertiesLevelCr.h PropertiesPickup.h PropertiesPlatform.h PropertiesRuler.h PropertiesSiding.h PropertiesSignal.h PropertiesSoundRegion.h PropertiesSoundSource.h PropertiesSpeedpost.h PropertiesStatic.h PropertiesTerrain.h PropertiesTrackItem.h PropertiesTrackObj.h PropertiesTransfer.h PropertiesUndefined.h QuadTree.h RandomConsist.h RandomTransformWorldObjDialog.h ReadFile.h Ref.h RenderItem.h Renderer.h Route.h RouteClient.h RouteEditorClient.h RouteEditorGLWidget.h RouteEditorServer.h RouteEditorWindow.h Ruch.h RulerObj.h SFile.h SFileC.h SFileX.h Service.h Shader.h ShapeHierarchyInfo.h ShapeHierarchyWindow.h ShapeInfoWidget.h ShapeLib.h ShapeTemplates.h ShapeTextureInfo.h ShapeTexturesWindow.h ShapeViewWindow.h ShapeViewerGLWidget.h ShapeViewerNavigatorWidget.h ShapeViewerWindow.h SigCfg.h SignalObj.h SignalShape.h SignalType.h SignalWindow.h SignalWindowLink.h SimpleHud.h Skydome.h SoundLib.h SoundList.h SoundManager.h SoundRegionObj.h SoundSource.h SoundSourceObj.h SoundVariables.h SpeedPost.h SpeedPostDAT.h SpeedpostObj.h StaticObj.h TDB.h TDBClient.h TFile.h TRitem.h TRnode.h TS.h TSection.h TSectionDAT.h TarFile.h Terrain.h TerrainClient.h TerrainInfo.h TerrainLib.h TerrainLibQt.h TerrainLibSimple.h TerrainTools.h TerrainTreeWindow.h TerrainWaterWindow.h TerrainWaterWindow2.h TexLib.h TextEditDialog.h TextObj.h Texture.h Tile.h TrWatermarkObj.h TrackItemObj.h TrackObj.h TrackShape.h Traffic.h TrainNetworkEng.h TransferObj.h TransformWorldObjDialog.h Trk.h TrkWindow.h Undo.h UnsavedDialog.h UriImageDrawThread.h Vector2f.h Vector2i.h Vector3f.h Vector4f.h WorldObj.h
                FORMS +=
                RESOURCES +=
                TRANSLATIONS +=
                OBJECTS_DIR = build/Release_x64/MinGW_64b-Windows
                MOC_DIR = 
                RCC_DIR = 
                UI_DIR = 
                QMAKE_CC = gcc
                QMAKE_CXX = g++
                DEFINES += 
                INCLUDEPATH += /e/dev/openal-soft-1.18.2-bin/include 
                LIBS += E:/DEV/openal-soft-1.18.2-bin/libs/Win64/libopenal32.a  
                equals(QT_MAJOR_VERSION, 4) {
                QMAKE_CXXFLAGS += -std=c++11
                }
                equals(QT_MAJOR_VERSION, 5) {
                CONFIG += c++11
                }
                QT += websockets
                LIBS += -lopengl32
                LIBS += -lglu32
                LIBS += -L"E:\dev\glut\glut32bit64bit" -lglut64
                LIBS += -L"E:\DEV\openal-soft-1.18.2-bin\libs\Win64" -lopenal32
                

                Any suggestions on where I explicitly need to specify qdds.dll ??

                E 1 Reply Last reply
                0
                • E eric_from_trainsim

                  @SGaist I'm not familiar with QT Creator... would that not possible with Netbeans as well?

                  Here's the content of the pro file:

                  # This file is generated automatically. Do not edit.
                  # Use project properties -> Build -> Qt -> Expert -> Custom Definitions.
                  TEMPLATE = app
                  DESTDIR = dist/Release_x64/MinGW_64b-Windows
                  TARGET = TSRE5
                  VERSION = 0.7
                  CONFIG -= debug_and_release app_bundle lib_bundle
                  CONFIG += release 
                  PKGCONFIG +=
                  QT = core gui widgets network opengl
                  SOURCES += AboutWindow.cpp AceLib.cpp ActLib.cpp ActionChooseDialog.cpp Activity.cpp ActivityEvent.cpp ActivityEventProperties.cpp ActivityEventWindow.cpp ActivityObject.cpp ActivityServiceProperties.cpp ActivityServiceWindow.cpp ActivityTimetable.cpp ActivityTimetableProperties.cpp ActivityTimetableWindow.cpp ActivityTools.cpp ActivityTrafficProperties.cpp ActivityTrafficWindow.cpp Brush.cpp CELoadWindow.cpp Camera.cpp CameraConsist.cpp CameraFree.cpp CameraRot.cpp CarSpawnerObj.cpp ChooseFileDialog.cpp ClickableLabel.cpp ClientInfo.cpp ClientUsersWindow.cpp ComplexLine.cpp ConEditorWindow.cpp ConInfoWidget.cpp ConLib.cpp ConListWidget.cpp ConUnitsWidget.cpp Consist.cpp ContentHierarchyInfo.cpp Coords.cpp CoordsGpx.cpp CoordsKml.cpp CoordsMkr.cpp CoordsRoutePlaces.cpp DynTrackObj.cpp EditFileNameDialog.cpp Eng.cpp EngInfoWidget.cpp EngLib.cpp EngListWidget.cpp Environment.cpp ErrorMessage.cpp ErrorMessageProperties.cpp ErrorMessagesLib.cpp ErrorMessagesWindow.cpp FileBuffer.cpp FileFunctions.cpp Flex.cpp ForestObj.cpp GLH.cpp GLMatrix.cpp GLUU.cpp Game.cpp GameObj.cpp GeoCoordinates.cpp GeoHgtFile.cpp GeoTerrainFile.cpp GeoTiffFile.cpp GeoTools.cpp GlobalDefinitions.cpp GroupObj.cpp GuiFunct.cpp GuiGlCompass.cpp HazardObj.cpp HeightWindow.cpp ImageLib.cpp Intersections.cpp LevelCrObj.cpp LoadWindow.cpp MapData.cpp MapDataOSM.cpp MapDataUrlImage.cpp MapLib.cpp MapWindow.cpp MstsSoundDefinition.cpp NaviBox.cpp NaviWindow.cpp NewRouteWindow.cpp OSMFeatures.cpp ObjFile.cpp ObjTools.cpp OglObj.cpp OpenGL3Renderer.cpp OrtsWeatherChange.cpp OverwriteDialog.cpp PaintTexLib.cpp ParserX.cpp Path.cpp PickupObj.cpp PlatformObj.cpp PlayActivitySelectWindow.cpp Pointer3d.cpp PoleObj.cpp ProceduralMstsDyntrack.cpp ProceduralShape.cpp PropertiesAbstract.cpp PropertiesActivityObject.cpp PropertiesActivityPath.cpp PropertiesCarspawner.cpp PropertiesConsist.cpp PropertiesDyntrack.cpp PropertiesForest.cpp PropertiesGroup.cpp PropertiesLevelCr.cpp PropertiesPickup.cpp PropertiesPlatform.cpp PropertiesRuler.cpp PropertiesSiding.cpp PropertiesSignal.cpp PropertiesSoundRegion.cpp PropertiesSoundSource.cpp PropertiesSpeedpost.cpp PropertiesStatic.cpp PropertiesTerrain.cpp PropertiesTrackItem.cpp PropertiesTrackObj.cpp PropertiesTransfer.cpp PropertiesUndefined.cpp QuadTree.cpp RandomConsist.cpp RandomTransformWorldObjDialog.cpp ReadFile.cpp Ref.cpp RenderItem.cpp Renderer.cpp Route.cpp RouteClient.cpp RouteEditorClient.cpp RouteEditorGLWidget.cpp RouteEditorServer.cpp RouteEditorWindow.cpp Ruch.cpp RulerObj.cpp SFile.cpp SFileC.cpp SFileX.cpp Service.cpp Shader.cpp ShapeHierarchyInfo.cpp ShapeHierarchyWindow.cpp ShapeInfoWidget.cpp ShapeLib.cpp ShapeTemplates.cpp ShapeTextureInfo.cpp ShapeTexturesWindow.cpp ShapeViewWindow.cpp ShapeViewerGLWidget.cpp ShapeViewerNavigatorWidget.cpp ShapeViewerWindow.cpp SigCfg.cpp SignalObj.cpp SignalShape.cpp SignalType.cpp SignalWindow.cpp SignalWindowLink.cpp SimpleHud.cpp Skydome.cpp SoundLib.cpp SoundList.cpp SoundManager.cpp SoundRegionObj.cpp SoundSource.cpp SoundSourceObj.cpp SoundVariables.cpp SpeedPost.cpp SpeedPostDAT.cpp SpeedpostObj.cpp StaticObj.cpp TDB.cpp TDBClient.cpp TFile.cpp TRitem.cpp TRnode.cpp TS.cpp TSection.cpp TSectionDAT.cpp TarFile.cpp Terrain.cpp TerrainClient.cpp TerrainInfo.cpp TerrainLib.cpp TerrainLibQt.cpp TerrainLibQtClient.cpp TerrainLibSimple.cpp TerrainTools.cpp TerrainTreeWindow.cpp TerrainWaterWindow.cpp TerrainWaterWindow2.cpp TexLib.cpp TextEditDialog.cpp TextObj.cpp Texture.cpp Tile.cpp TrWatermarkObj.cpp TrackItemObj.cpp TrackObj.cpp TrackShape.cpp Traffic.cpp TrainNetworkEng.cpp TransferObj.cpp TransformWorldObjDialog.cpp Trk.cpp TrkWindow.cpp Undo.cpp UnsavedDialog.cpp UriImageDrawThread.cpp Vector2f.cpp Vector2i.cpp Vector3f.cpp Vector4f.cpp WorldObj.cpp main.cpp
                  HEADERS += AboutWindow.h AceLib.h ActLib.h ActionChooseDialog.h Activity.h ActivityEvent.h ActivityEventProperties.h ActivityEventWindow.h ActivityObject.h ActivityServiceProperties.h ActivityServiceWindow.h ActivityTimetable.h ActivityTimetableProperties.h ActivityTimetableWindow.h ActivityTools.h ActivityTrafficProperties.h ActivityTrafficWindow.h Brush.h CELoadWindow.h Camera.h CameraConsist.h CameraFree.h CameraRot.h CarSpawnerObj.h ChooseFileDialog.h ClickableLabel.h ClientInfo.h ClientUsersWindow.h ComplexLine.h ConEditorWindow.h ConInfoWidget.h ConLib.h ConListWidget.h ConUnitsWidget.h Consist.h ContentHierarchyInfo.h Coords.h CoordsGpx.h CoordsKml.h CoordsMkr.h CoordsRoutePlaces.h DynTrackObj.h EditFileNameDialog.h Eng.h EngInfoWidget.h EngLib.h EngListWidget.h Environment.h ErrorMessage.h ErrorMessageProperties.h ErrorMessagesLib.h ErrorMessagesWindow.h FileBuffer.h FileFunctions.h Flex.h ForestObj.h GLH.h GLMatrix.h GLUU.h Game.h GameObj.h GeoCoordinates.h GeoHgtFile.h GeoTerrainFile.h GeoTiffFile.h GeoTools.h GlobalDefinitions.h GroupObj.h GuiFunct.h GuiGlCompass.h HazardObj.h HeightWindow.h ImageLib.h Intersections.h LevelCrObj.h LoadWindow.h MapData.h MapDataOSM.h MapDataUrlImage.h MapLib.h MapWindow.h MstsSoundDefinition.h NaviBox.h NaviWindow.h NewRouteWindow.h OSMFeatures.h ObjFile.h ObjTools.h OglObj.h OpenGL3Renderer.h OrtsWeatherChange.h OverwriteDialog.h PaintTexLib.h ParserX.h Path.h PickupObj.h PlatformObj.h PlayActivitySelectWindow.h Pointer3d.h PoleObj.h ProceduralMstsDyntrack.h ProceduralShape.h PropertiesAbstract.h PropertiesActivityObject.h PropertiesActivityPath.h PropertiesCarspawner.h PropertiesConsist.h PropertiesDyntrack.h PropertiesForest.h PropertiesGroup.h PropertiesLevelCr.h PropertiesPickup.h PropertiesPlatform.h PropertiesRuler.h PropertiesSiding.h PropertiesSignal.h PropertiesSoundRegion.h PropertiesSoundSource.h PropertiesSpeedpost.h PropertiesStatic.h PropertiesTerrain.h PropertiesTrackItem.h PropertiesTrackObj.h PropertiesTransfer.h PropertiesUndefined.h QuadTree.h RandomConsist.h RandomTransformWorldObjDialog.h ReadFile.h Ref.h RenderItem.h Renderer.h Route.h RouteClient.h RouteEditorClient.h RouteEditorGLWidget.h RouteEditorServer.h RouteEditorWindow.h Ruch.h RulerObj.h SFile.h SFileC.h SFileX.h Service.h Shader.h ShapeHierarchyInfo.h ShapeHierarchyWindow.h ShapeInfoWidget.h ShapeLib.h ShapeTemplates.h ShapeTextureInfo.h ShapeTexturesWindow.h ShapeViewWindow.h ShapeViewerGLWidget.h ShapeViewerNavigatorWidget.h ShapeViewerWindow.h SigCfg.h SignalObj.h SignalShape.h SignalType.h SignalWindow.h SignalWindowLink.h SimpleHud.h Skydome.h SoundLib.h SoundList.h SoundManager.h SoundRegionObj.h SoundSource.h SoundSourceObj.h SoundVariables.h SpeedPost.h SpeedPostDAT.h SpeedpostObj.h StaticObj.h TDB.h TDBClient.h TFile.h TRitem.h TRnode.h TS.h TSection.h TSectionDAT.h TarFile.h Terrain.h TerrainClient.h TerrainInfo.h TerrainLib.h TerrainLibQt.h TerrainLibSimple.h TerrainTools.h TerrainTreeWindow.h TerrainWaterWindow.h TerrainWaterWindow2.h TexLib.h TextEditDialog.h TextObj.h Texture.h Tile.h TrWatermarkObj.h TrackItemObj.h TrackObj.h TrackShape.h Traffic.h TrainNetworkEng.h TransferObj.h TransformWorldObjDialog.h Trk.h TrkWindow.h Undo.h UnsavedDialog.h UriImageDrawThread.h Vector2f.h Vector2i.h Vector3f.h Vector4f.h WorldObj.h
                  FORMS +=
                  RESOURCES +=
                  TRANSLATIONS +=
                  OBJECTS_DIR = build/Release_x64/MinGW_64b-Windows
                  MOC_DIR = 
                  RCC_DIR = 
                  UI_DIR = 
                  QMAKE_CC = gcc
                  QMAKE_CXX = g++
                  DEFINES += 
                  INCLUDEPATH += /e/dev/openal-soft-1.18.2-bin/include 
                  LIBS += E:/DEV/openal-soft-1.18.2-bin/libs/Win64/libopenal32.a  
                  equals(QT_MAJOR_VERSION, 4) {
                  QMAKE_CXXFLAGS += -std=c++11
                  }
                  equals(QT_MAJOR_VERSION, 5) {
                  CONFIG += c++11
                  }
                  QT += websockets
                  LIBS += -lopengl32
                  LIBS += -lglu32
                  LIBS += -L"E:\dev\glut\glut32bit64bit" -lglut64
                  LIBS += -L"E:\DEV\openal-soft-1.18.2-bin\libs\Win64" -lopenal32
                  

                  Any suggestions on where I explicitly need to specify qdds.dll ??

                  E Offline
                  E Offline
                  eric_from_trainsim
                  wrote on last edited by
                  #7

                  also... am I referencing the directory with the compiled qdds.dll (e.g. E:\DEV\Qt\5.15.2\mingw81_64\plugins\imageformats ) or the sources (e.g. E:\DEV\Qt\5.15.2\Src\qtimageformats\src\plugins\imageformats\dds )??

                  Again, I'm a bit new to all this, and simply trying to fix someone else's code who left the project two years ago and hasn't given a whole lot of support since...

                  What's boggling is the version compiled in 5.7 builds and runs perfectly, but isn't portable and won't run on a PC without QT, MinGW and possibly a few other items installed.... The version compiled in 5.15.2 and MinGW 810 is portable, but can't support DDS's...

                  If this isn't a simple fix, is there a way to run 5.7 and MinGW 810_64?.... I'm not finding a 530_64 anywhere.

                  C 1 Reply Last reply
                  0
                  • E eric_from_trainsim

                    also... am I referencing the directory with the compiled qdds.dll (e.g. E:\DEV\Qt\5.15.2\mingw81_64\plugins\imageformats ) or the sources (e.g. E:\DEV\Qt\5.15.2\Src\qtimageformats\src\plugins\imageformats\dds )??

                    Again, I'm a bit new to all this, and simply trying to fix someone else's code who left the project two years ago and hasn't given a whole lot of support since...

                    What's boggling is the version compiled in 5.7 builds and runs perfectly, but isn't portable and won't run on a PC without QT, MinGW and possibly a few other items installed.... The version compiled in 5.15.2 and MinGW 810 is portable, but can't support DDS's...

                    If this isn't a simple fix, is there a way to run 5.7 and MinGW 810_64?.... I'm not finding a 530_64 anywhere.

                    C Offline
                    C Offline
                    ChrisW67
                    wrote on last edited by
                    #8

                    @eric_from_trainsim said in Enabling DDS images in QT5.15.2:

                    also... am I referencing the directory with the compiled qdds.dll (e.g. E:\DEV\Qt\5.15.2\mingw81_64\plugins\imageformats ) or the sources (e.g. E:\DEV\Qt\5.15.2\Src\qtimageformats\src\plugins\imageformats\dds )??

                    Your application PRO file should not refer to any part of the DDS image format plugin source or compiled plugin library. The compiled and installed plugin library will be loaded at runtime when you attempt to open an image that is not handled by built-in format handling.

                    Again, I'm a bit new to all this, and simply trying to fix someone else's code who left the project two years ago and hasn't given a whole lot of support since...

                    Often the way of things.

                    What's boggling is the version compiled in 5.7 builds and runs perfectly, but isn't portable and won't run on a PC without QT, MinGW and possibly a few other items installed....

                    This is a packaging problem. If you have a Qt 5.7 dev environment that can build and run a dynamically linked version of this application, then you almost certainly have everything you need to deploy it in a single folder structure for any recent Windows (i.e. you do not need to separately install a MingW or Qt, but you do need to ship the libs/plugins relevant to the application etc.)

                    The version compiled in 5.15.2 and MinGW 810 is portable, but can't support DDS's...

                    The support was disabled because it poses a security risk.

                    If this isn't a simple fix, is there a way to run 5.7 and MinGW 810_64?.... I'm not finding a 530_64 anywhere.

                    You could build from source with MingW but this will not change the packaging requirements.

                    E 1 Reply Last reply
                    1
                    • C ChrisW67

                      @eric_from_trainsim said in Enabling DDS images in QT5.15.2:

                      also... am I referencing the directory with the compiled qdds.dll (e.g. E:\DEV\Qt\5.15.2\mingw81_64\plugins\imageformats ) or the sources (e.g. E:\DEV\Qt\5.15.2\Src\qtimageformats\src\plugins\imageformats\dds )??

                      Your application PRO file should not refer to any part of the DDS image format plugin source or compiled plugin library. The compiled and installed plugin library will be loaded at runtime when you attempt to open an image that is not handled by built-in format handling.

                      Again, I'm a bit new to all this, and simply trying to fix someone else's code who left the project two years ago and hasn't given a whole lot of support since...

                      Often the way of things.

                      What's boggling is the version compiled in 5.7 builds and runs perfectly, but isn't portable and won't run on a PC without QT, MinGW and possibly a few other items installed....

                      This is a packaging problem. If you have a Qt 5.7 dev environment that can build and run a dynamically linked version of this application, then you almost certainly have everything you need to deploy it in a single folder structure for any recent Windows (i.e. you do not need to separately install a MingW or Qt, but you do need to ship the libs/plugins relevant to the application etc.)

                      The version compiled in 5.15.2 and MinGW 810 is portable, but can't support DDS's...

                      The support was disabled because it poses a security risk.

                      If this isn't a simple fix, is there a way to run 5.7 and MinGW 810_64?.... I'm not finding a 530_64 anywhere.

                      You could build from source with MingW but this will not change the packaging requirements.

                      E Offline
                      E Offline
                      eric_from_trainsim
                      wrote on last edited by eric_from_trainsim
                      #9

                      @ChrisW67

                      Thanks....

                      I repackaged the 5.7 version again today, and the error I get running on a vanilla PC (no QT or MinGW installs) is:

                      This application failed to start because it could not find or load the Qt platform plugin "windows"in ""

                      I've checked to see that the qt_plugin_path isn't set, and platform\qwindows.dll is present in the application directory... The vanilla PC does have a number of apps with qwindows.dll present in a directory, mainly OneDrive and DropBox.

                      Both versions 5.7 and 5.15 are running in single folder structure -- both also run fine on the machine they're compiled on.

                      Taking to a vanilla machine, only the 5.15 version will run without the DDS support....

                      C 1 Reply Last reply
                      0
                      • E eric_from_trainsim

                        @ChrisW67

                        Thanks....

                        I repackaged the 5.7 version again today, and the error I get running on a vanilla PC (no QT or MinGW installs) is:

                        This application failed to start because it could not find or load the Qt platform plugin "windows"in ""

                        I've checked to see that the qt_plugin_path isn't set, and platform\qwindows.dll is present in the application directory... The vanilla PC does have a number of apps with qwindows.dll present in a directory, mainly OneDrive and DropBox.

                        Both versions 5.7 and 5.15 are running in single folder structure -- both also run fine on the machine they're compiled on.

                        Taking to a vanilla machine, only the 5.15 version will run without the DDS support....

                        C Offline
                        C Offline
                        ChrisW67
                        wrote on last edited by
                        #10

                        @eric_from_trainsim To diagnose why the platform plugin is not loading refer to my earlier post.

                        It is possible that the platform DLL came from the wrong version of Qt.
                        Its possible that another Qt library has not been packaged or is the wrong version.
                        A common mistake is to ship the libraries underlying Qt Creator rather than the Qt library the application was built against.

                        What is the content of the deployment folder and where did the DLLs come from?

                        E 1 Reply Last reply
                        0
                        • C ChrisW67

                          @eric_from_trainsim To diagnose why the platform plugin is not loading refer to my earlier post.

                          It is possible that the platform DLL came from the wrong version of Qt.
                          Its possible that another Qt library has not been packaged or is the wrong version.
                          A common mistake is to ship the libraries underlying Qt Creator rather than the Qt library the application was built against.

                          What is the content of the deployment folder and where did the DLLs come from?

                          E Offline
                          E Offline
                          eric_from_trainsim
                          wrote on last edited by
                          #11

                          @ChrisW67 If I set the qt_plugins_debug=1 and run the EXE from a command prompt, the app fires up per normal, and I get nothing in the QDebug log or at the command prompt....

                          All of the files that are in the deployment folder are from the bin of the versions compiled i.e. the 5.7 version including the qwindows all come from my QT/5.7/mingww53_32/bin or QT/5.7/mingww53_32/plugins/platforms directories, and the 5.15.2 version come from Qt/5.15.2/mingw81_64/bin and Qt/5.15.2/mingw81_64/plugins/platforms

                          Contents are:

                          Qt5WebSockets.dll
                          Qt5Widgets.dll
                          Qt5Network.dll
                          Qt5Gui.dll
                          Qt5Core.dll
                          libstdc++-6.dll
                          libwinpthread-1.dll
                          libgcc_s_dw2-1.dll
                          OpenAL32.dll
                          platforms\qwindows.dll

                          While I still can't get the 5.7 version to be portable, on a guess, I took the 5.15.2 version and added the plugins/imageformats directory to the distribution, and now it seems to be working. I've sent it out to some folks for testing to be certain, and should know more in about 12-15 hours.

                          E 1 Reply Last reply
                          0
                          • E eric_from_trainsim

                            @ChrisW67 If I set the qt_plugins_debug=1 and run the EXE from a command prompt, the app fires up per normal, and I get nothing in the QDebug log or at the command prompt....

                            All of the files that are in the deployment folder are from the bin of the versions compiled i.e. the 5.7 version including the qwindows all come from my QT/5.7/mingww53_32/bin or QT/5.7/mingww53_32/plugins/platforms directories, and the 5.15.2 version come from Qt/5.15.2/mingw81_64/bin and Qt/5.15.2/mingw81_64/plugins/platforms

                            Contents are:

                            Qt5WebSockets.dll
                            Qt5Widgets.dll
                            Qt5Network.dll
                            Qt5Gui.dll
                            Qt5Core.dll
                            libstdc++-6.dll
                            libwinpthread-1.dll
                            libgcc_s_dw2-1.dll
                            OpenAL32.dll
                            platforms\qwindows.dll

                            While I still can't get the 5.7 version to be portable, on a guess, I took the 5.15.2 version and added the plugins/imageformats directory to the distribution, and now it seems to be working. I've sent it out to some folks for testing to be certain, and should know more in about 12-15 hours.

                            E Offline
                            E Offline
                            eric_from_trainsim
                            wrote on last edited by
                            #12

                            Adding ./imageformats with the related DLL's in the application directory was indeed the missing step for me. While having everything within the EXE would be ideal, this approach is at least manageable given an open source project with maybe a couple hundred users worldwide.

                            Thanks to @ChrisW67 and @SGaist for your replies.

                            1 Reply Last reply
                            0
                            • E eric_from_trainsim has marked this topic as solved on

                            • Login

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • Users
                            • Groups
                            • Search
                            • Get Qt Extensions
                            • Unsolved