Quick Links: Download Gideros Studio | Gideros Documentation | Gideros community chat | DONATE
Feature parity for win32 version - Page 6 — Gideros Forum

Feature parity for win32 version

12346

Comments

  • hgy29hgy29 Maintainer
    Just thinking, it would be noce to have platform/feature compatiblity matrix somewhere in the Wiki

    Likes: keszegh, MoKaLux

    +1 -1 (+2 / -0 )Share on Facebook
  • MoKaLuxMoKaLux Member
    edited February 2023
    that did it, compilation successful thank you hgy29

    We have win32 64bit, amazed :o <3
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited February 2023
    after compiling and running my app I have this error:

    save_prefs.lua:
    require "json"
     
    function saveData(filepath, value)
    	local contents = json.encode(value)
    	local file = io.open(filepath, "w") -- create file
    	file:write(contents) -- save json string in file
    	io.close(file)
    end
     
    function getData(filepath)
    	local result, value
    	local file = io.open(filepath, "r")
    	if file then
    		local contents = file:read("*a") -- read contents
    --		value = json.decode(contents) -- decode json
    		result, value = pcall(json.decode, contents) -- try to decode json
    		io.close(file)
    	end
    	return result, value
    end
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • i think setcursor does not work on win32 yet btw, would be nice.
  • From previous post: the folder plugins is not being created when building the app, so the plugins (json in my case) couldn't be found.
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited February 2023
    keszegh said:

    i think setcursor does not work on win32 yet btw, would be nice.

    That should work but not with all cursors:
    	-- test
    	application:set("cursor", "upArrow")
    static std::map cursorMap={
    { "arrow", OCR_NORMAL },
    { "upArrow", OCR_UP },
    { "cross", OCR_CROSS },
    { "wait", OCR_WAIT },
    { "IBeam", OCR_IBEAM },
    { "sizeVer",OCR_SIZENS },
    { "sizeHor", OCR_SIZEWE },
    { "sizeBDiag",OCR_SIZENWSE },
    { "sizeFDiag", OCR_SIZENESW },
    { "sizeAll", OCR_SIZEALL }, //Doesn't really fit, but best so far'
    // { "blank", "none"},
    { "splitV", OCR_SIZENS }, //need better
    { "splitH", OCR_SIZEWE }, //need better
    { "pointingHand", OCR_HAND },
    { "forbidden", OCR_NO },
    { "whatsThis", OCR_HELP },
    { "busy", OCR_APPSTARTING },
    // { "openHand", "grab" },
    // { "closedHand", "grabbing" },
    // { "dragCopy", "copy" },
    // { "dragMove", "move" },
    // { "dragLink", "alias" },
    };
    hgy29 implemented it in latest official Gideros 2023.1
    Is this what you were looking for when you said setcursor?
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    edited February 2023
    MoKaLux said:

    From previous post: the folder plugins is not being created when building the app, so the plugins (json in my case) couldn't be found.

    You need to grab an updated json.gplugin file (I changed it on github), json wasn't exported on win32 until now, which wasn't a problem since it was in the template by default.

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLux said:

    keszegh said:

    i think setcursor does not work on win32 yet btw, would be nice.

    That should work but not with all cursors:
    	-- test
    	application:set("cursor", "upArrow")
    static std::map cursorMap={
    { "arrow", OCR_NORMAL },
    { "upArrow", OCR_UP },
    { "cross", OCR_CROSS },
    { "wait", OCR_WAIT },
    { "IBeam", OCR_IBEAM },
    { "sizeVer",OCR_SIZENS },
    { "sizeHor", OCR_SIZEWE },
    { "sizeBDiag",OCR_SIZENWSE },
    { "sizeFDiag", OCR_SIZENESW },
    { "sizeAll", OCR_SIZEALL }, //Doesn't really fit, but best so far'
    // { "blank", "none"},
    { "splitV", OCR_SIZENS }, //need better
    { "splitH", OCR_SIZEWE }, //need better
    { "pointingHand", OCR_HAND },
    { "forbidden", OCR_NO },
    { "whatsThis", OCR_HELP },
    { "busy", OCR_APPSTARTING },
    // { "openHand", "grab" },
    // { "closedHand", "grabbing" },
    // { "dragCopy", "copy" },
    // { "dragMove", "move" },
    // { "dragLink", "alias" },
    };
    hgy29 implemented it in latest official Gideros 2023.1
    Is this what you were looking for when you said setcursor?
    i will check in a week, thanks
  • keszegh said:

    MoKaLux said:

    keszegh said:

    i think setcursor does not work on win32 yet btw, would be nice.

    That should work but not with all cursors:
    	-- test
    	application:set("cursor", "upArrow")
    static std::map cursorMap={
    { "arrow", OCR_NORMAL },
    { "upArrow", OCR_UP },
    { "cross", OCR_CROSS },
    { "wait", OCR_WAIT },
    { "IBeam", OCR_IBEAM },
    { "sizeVer",OCR_SIZENS },
    { "sizeHor", OCR_SIZEWE },
    { "sizeBDiag",OCR_SIZENWSE },
    { "sizeFDiag", OCR_SIZENESW },
    { "sizeAll", OCR_SIZEALL }, //Doesn't really fit, but best so far'
    // { "blank", "none"},
    { "splitV", OCR_SIZENS }, //need better
    { "splitH", OCR_SIZEWE }, //need better
    { "pointingHand", OCR_HAND },
    { "forbidden", OCR_NO },
    { "whatsThis", OCR_HELP },
    { "busy", OCR_APPSTARTING },
    // { "openHand", "grab" },
    // { "closedHand", "grabbing" },
    // { "dragCopy", "copy" },
    // { "dragMove", "move" },
    // { "dragLink", "alias" },
    };
    hgy29 implemented it in latest official Gideros 2023.1
    Is this what you were looking for when you said setcursor?
    i will check in a week, thanks
    i need grab and grabbing i think
  • hgy29hgy29 Maintainer
    keszegh said:


    i need grab and grabbing i think

    They're not defined in windows API (the OCR_xx constants)

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29 said:

    keszegh said:


    i need grab and grabbing i think

    They're not defined in windows API (the OCR_xx constants)

    that's disappointing, exactly those that i need. ty
  • MoKaLuxMoKaLux Member
    edited February 2023
    hgy29 said:

    MoKaLux said:

    From previous post: the folder plugins is not being created when building the app, so the plugins (json in my case) couldn't be found.

    You need to grab an updated json.gplugin file (I changed it on github), json wasn't exported on win32 until now, which wasn't a problem since it was in the template by default.
    Just cloned Gideros to another folder so I have all the latest files but still no plugins folder generated after compiling for win32 64bit, thus the same error as above :'(

    Maybe it is somewhere to do here?
    gdrexport\ExportBuiltin.cpp l395
       //install plugins
       if (!ExportCommon::applyPlugins(ctx))
    		ctx->exportError=true;
     
       if (needGApp)
       {...
    (only for my personal ref:
    C:\dev\gideros_dev\gdrexport\ExportBuiltin.cpp
        //exporting icons
        if (ctx->deviceFamily == e_Html5)...
    )
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    Tried again with a clean folder and yes, you are right, I should have kept the plugins directory empty instead of removing it completely. That should be fixed now.

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLuxMoKaLux Member
    edited February 2023
    Thank you very much hgy29, tested and everything looks good to me :)

    Win32 64bit still amazed :o

    EDIT: one minor suggestion but you do as you will of course :) changing back underscore = true (as it seems underscore = false strips all numbers in the app name even if they are not at the beginning)

    Viva Gideros <3

    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    @MoKaLux, I made a slight change regarding the underscore stuff, can you check if that suits you with latest sources

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • I can confirm that it is working on my side. All is good on my side, thank you for all your hard work hgy29 o:)
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    Actually it broke other exports (Android at least), I'll revisit my changes and tell you

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLuxMoKaLux Member
    edited February 2023
    I see you removed underscore from e_Android, e_WindowsDesktop, e_MacOSXDesktop, ... they may be needed? That wasn't easy as I thought it would :(
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    I changed the whole system, it is no longer a boolean but an enum now

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLuxMoKaLux Member
    edited February 2023
    FYI: there is a bug when the application is in a folder which has spaces in it (for example: "my folder")

    ...EDIT5: I think I found the origin of the error, it is coming from os.execute:
    	local fbxconvexepath = application:getNativePath("fbx_conv/fbx-conv.exe")
    	print("fbxconvexepath", fbxconvexepath)
    	--> fbxconvexepath  C:\Users\xxx\Downloads\temp\New_folder\New folder (3)\3DPixel\assets\fbx_conv/fbx-conv.exe
    	--> THIS LOOKS OK I HAVE THE SPACE PRESERVED
    	os.execute("start "..fbxconvexepath.." -f -v -o G3DJ "C:\temp\file.fbx" "C:\temp\file.json"
    	--> "The system cannot find the file C:\Users\xxx\Downloads\temp\New_folder\New."
    	--> SO HERE IT SEEMS New Folder gets transformed to New. ?!
    So can I safely assume the error comes from os.execute? ;)

    \gideros_dev3\luau\VM\src\loslib.cpp l117
    static int os_execute (lua_State *L) {
      #if defined(QT_NO_DEBUG) || defined(WIN32)
      lua_pushinteger(L, system(luaL_optstring(L, 1, NULL)));
      #else
      lua_pushnil(L);
      #endif
      return 1;
    }
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    MoKaLux said:


    So can I safely assume the error comes from os.execute? ;)

    I just os.execute works, but you forgot to quote/escape the command for the shell
  • MoKaLuxMoKaLux Member
    edited February 2023
    Sorry hgy29 I tested and the error occurs even with Qt export so this is not related to win32 64bit export only (this may happen on other systems too but cannot tell) :/
    I have set up a test project on GH https://github.com/mokalux/fbx_export

    This may be a bug or I may have malformed the cmd?!

    EDIT: sorry I realized it has nothing to do with Gideros :) it is just fbx-conv.exe which doesn't allow spaces in the command parameters :'(
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    Actually it has nothing to do with fbx-conv.exe, it is a common command-line issue: space is the argument seperator

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLuxMoKaLux Member
    edited February 2023
    sorry about me accusing people :(

    thanks for educating me hgy29 ;)
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    MoKaLux said:


    thanks for educating me hgy29 ;)

    :D

  • this seems to be a bug:
    when changing cursor with application:set() then it updates to new cursor only after moving the mouse (if i don't move mouse it does not change at all).
  • i think the only thing i miss from win32 is the openhand cursor, are you realy sure it cannot be added?
    https://learn.microsoft.com/en-us/windows/win32/uxguide/inter-mouse
    in this page it is in the same slot as the 4-way arrow, which is included, so i guessed that perhaps openhand can be added too?
  • hgy29hgy29 Maintainer
    Actually this one is supported already, but used "pointingHand" identifier, while actually it isn't a pointing hand at all. I guess we can map "openHand" to it instead or in addition.
  • hgy29 said:

    Actually this one is supported already, but used "pointingHand" identifier, while actually it isn't a pointing hand at all. I guess we can map "openHand" to it instead or in addition.

    i'm not sure i follow, pointingHand works now and it shows a pointing hand (and not an open hand).
Sign In or Register to comment.