Grid Sage Forums

Grid Sage Forums

  • April 26, 2024, 01:07:44 PM
  • Welcome, Guest
Please login or register.

Login with username, password and session length
Advanced search  

News:

LINKS: Website | Steam | Wiki

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - gumix

Pages: 1 [2] 3 4 ... 6
26
Aw! Looks insanely good. Thanks for reworking my poor English description too.

27
Everything REXPaint / Re: Multi layer copy/cut/paste [2.0 backlog]
« on: May 15, 2020, 08:53:28 AM »
Wait, what? You are tireless, this is going to save me from hours of not so fun work.
Thank you.

28
Everything REXPaint / Re: Multi layer copy/cut/paste [2.0 backlog]
« on: May 15, 2020, 05:30:33 AM »
Yes, you're right, counting down would be better.
Also as mouse clicks in UI are currently insensitive to shift key, you could use that to set copy/paste range of layers from active layer to shift+clicked one. Even if such state is not visualized in the UI I'd pray for such addon in 1.5 patch. ;)

29
Great, thank you!
Can't wait to see cropped image ;)

30
OK, I'm quite sure almost everyone here knows about my tiny project, but I feel it is right time to join other great creations in the RP projects page.

1. ASCIICKER
2. https://asciicker.com
3. ASCIICKER is a WIP (work in progress), 3D textmode RPG (role playing game) prototype.
  Project has started in 2017, initially written in javascript and targetting only web.
  In 2019 development changed to C++ language and now it is targetting almost anything.
  Currently builds are provided for linux, windows and web.
4. Attached

31
Everything REXPaint / Multi layer copy/cut/paste [2.0 backlog]
« on: May 14, 2020, 02:11:11 AM »
The idea comes from the fact I'm in quite often need of rearranging multi layer sprites in my sprite sheets.
In example it could work by specifying a stack depth integer parameter, counting from active layer up (default 1).



32
Everything REXPaint / Re: Key rebinding
« on: May 14, 2020, 02:01:09 AM »
How about text tool?

edit:
I mean, it would be impossible to type WASD characters with Text writing tool.

33
Everything REXPaint / Re: While in the browser...
« on: February 16, 2020, 10:51:09 AM »
Oh my, so the unexpected just happened!
I'll have to be careful with new shortcuts, I used ctrl+arrows and ctrl+shift+arrows pretty often :)
But this change is in good direction, I'll get used to it for sure.

Thank you!

34
Everything REXPaint / Re: While in the browser...
« on: February 15, 2020, 09:38:57 AM »
Works great, as usual :)
Thank you!

35
Everything REXPaint / Re: While in the browser...
« on: February 15, 2020, 08:01:45 AM »
Quote
Oh you just have to drop skins.xt in and overwrite the current file.
Ok, sounds easy now. Thanks.

Btw, I'm just thinking about opposite solution, are there shortcuts for switching to next / previous file in the browser while in paint mode?

Now I'm a gumix the Cyborg!

36
Everything REXPaint / Re: While in the browser...
« on: February 15, 2020, 07:37:22 AM »
Looks like being gumix starts to be a good thing :) Switching layers is the only thing I miss in the browser, yesterday I've discovered how to resize image without touching a mouse: Ctrl+R W <width> ENTER H <height> ENTER ENTER that is soooooo nice! Of course I use a lot of ctrl+tab too, I don't even know when it was added, it's so helpful in my current tasks!

Thank you so much for the patch
I'll give it a whirl today! I'm not sure what should I do with skins.xt but maybe I'll figure it out somehow.

37
Everything REXPaint / While in the browser...
« on: February 15, 2020, 05:18:05 AM »
One thing I have sometimes to struggle with is painting same tiny tweak over multiple images.
While in the browser, RP allows for some limited painting, which is great for such tasks. Unfortunately switching layers by shortcut (1-4) seams to be disabled in browser mode. Is there anything else bound to these keys or are they simply disabled then?

If I'm in such luck and nothing is assigned, can we have layer switching by 1-4 keys active in browser mode too?

Cheers ;)

38
Everything REXPaint / Re: Show off your REXPAINT creations
« on: December 26, 2019, 03:22:43 PM »
Thx, it became so popular after bluedrake42's video on YT, shortly after Polyducks retwitted my old stuff.

39
Everything REXPaint / Re: Show off your REXPAINT creations
« on: December 23, 2019, 07:34:34 AM »
After long time I have something to post here :) - inventory window prototype with few examples of items.

40
Everything REXPaint / Re: Animation preview popup
« on: October 13, 2019, 05:08:00 AM »
Regarding UI, I love how it is as is, minimalist, cleverly designed and very productive, even with tons of 'hidden' shortcut only accessible features (probably most I'm not aware of). But I can understand it's  very limiting when adding new things. Recently I switched from Blender 2.7x to 2.80, they have redesigned entire UI, added a lot 'modes' to prevent shortcut collisions. I can't imagine how much work it consumed and how many old veterans will blame them for this move. I hope I'll be still able to use new RP :).
Wishing you all the best with Cogming and RP of course! Thanks for making it so good and public!


41
Everything REXPaint / Re: Animation preview popup
« on: October 07, 2019, 03:18:21 AM »
Thank you for an update!
I didn't realize Cogmind is still in beta :o, you've always been a perfectionist, right?
I'm very glad to hear you're able to manage RP backlog, for me it would be probably overgrown and made me feel depressed ;)

42
Everything REXPaint / Re: Animation preview popup
« on: October 04, 2019, 06:41:02 AM »
Thanks for info. Now I want to know more :P
What status 2.0 is about? Just backlog / in production / or alpha-beta maybe ;) ?
What are your thoughts on new UI in 2.0?
- Adding scrollable / resizable panels inside main window?
- Multiple textmode windows?
- OS Windows?
- Anything else?

43
Everything REXPaint / Animation preview popup
« on: October 04, 2019, 05:42:38 AM »
HI, long time no see...

So I'm playing a lot with animation sheets at the moment and just imagined quite handy tool I miss so much in RP.

It would let user to preview animation out of current image (animation sheet).
When opened (in form of popup window like 'Resize') it should contain dx,dy fields and image canvas of dx,dy size inside the popup and 'Close' button. When user provides there frame x & y offsets between frames on his/her sheet then using ie: arrow keys it should switch between frames while painting preview of single frame in frame canvas with all visible layers (just crop).

Having default dx and/or dy (equal to 0) shoud treat it as there is just single frame full width and/or full height.

44
Everything REXPaint / Re: Show off your REXPAINT creations
« on: February 27, 2019, 02:26:13 PM »
Your planet looks gorgeous on 'a new medium' ;D

45
Everything REXPaint / Re: [Feature Request] Embedding additional data
« on: February 15, 2019, 10:54:37 AM »
Personally I've ended up with solution of extended image canvas by 1 row (in every .xp). So I was able to paint there arbitrary metadata on per leyer basis. Of course you may need 2 or more rows depending on your data volume :)

46
Everything REXPaint / Re: [Feature Request] Embedding additional data
« on: February 11, 2019, 05:48:19 AM »
 
Code: [Select]
´´´´´´´´´´´´´´´´´´´´´´´¶¶¶¶¶¶¶¶
´´´´´´¶¶¶¶¶´´´´´´´´¶¶¶¶´´´´´´´´¶¶¶¶
´´´´´¶´´´´´¶´´´´¶¶´´´´´´´´´´´´´´´´´´¶¶
´´´´´¶´´´´´¶´´´¶¶´´´´´´¶¶´´´´¶¶´´´´´´´¶¶
´´´´´¶´´´´¶´´¶¶´´´´´´´´¶¶´´´´¶¶´´´´´´´´¶¶
´´´´´´¶´´´¶´´´¶´´´´´´´´´´´´´´´´´´´´´´´´´¶¶
´´´´¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´´´´´´´´´´´´¶¶
´´´¶´´´´´´´´´´´´¶´´´¶¶´´´´´´´´´´´¶¶´´´´´´¶¶
´´¶¶´´´´´´´´´´´´¶´´´¶¶´´´´´´´´´´´¶¶´´´´´´¶¶
´¶¶´´´¶¶¶¶¶¶¶¶¶¶¶´´´´´¶¶´´´´´´´¶¶´´´´´´´¶¶
´¶´´´´´´´´´´´´´´´¶´´´´´´¶¶¶¶¶¶¶´´´´´´´´¶¶
´¶¶´´´´´´´´´´´´´´¶´´´´´´´´´´´´´´´´´´´´¶¶
´´¶´´´¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´´´´´´¶¶
´´¶¶´´´´´´´´´´´¶´´´¶¶¶¶´´´´´´´´´¶¶¶¶
´´´¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´´¶¶¶¶¶¶¶¶¶

47
Everything REXPaint / Re: [Feature Request] Embedding additional data
« on: February 11, 2019, 05:27:17 AM »
You're welcome.
Though I guess this means the plugin must be written in C unless the API provides support for other languages?
Yes and not. C of course is supported, C++ can do it by simply adding extern "C" (like in examlpe), other languages would require gluing dll.

I don't see a whole lot being gained by users doing it this way when the same effect can be achieved externally, with greater flexibility.
Yea, I can understand you. 'File interface' is absolutely fine and universal. Any format conversion can be done by external toolchain of readers, metadata injectors and writers. So real reason for plugin interface is not just to have R/W functionality. In example. for me it is essential to be able to provide custom blending modes to rex. Could be in form of:

Code: [Select]
bool RegisterBlendMode(const char* name, Cell (*BlendFunc)(Cell* above, Cell* below))
You could probably notice that all my work used pretty different layer blending from what rex displays in editor. Painting content for my isometry game prototype was so painful (just because of 'depth' blending) I have paused it until I find alternative way for doing it. So here's a chance for me to still use my fav rex :)


48
Everything REXPaint / Re: [Feature Request] Embedding additional data
« on: February 10, 2019, 08:02:34 AM »
Ok, I'll try to make it as short as possible, so it may appear to be a bit silly. But this is just to give you an idea how plugins could interact with rex. 

When Rex starts up, it looks for files ie: *.xplug in its ./plugins directory. For each of them:
- it tries to load it as dll using HMODULE LoadLibrary(<path>);
- if loaded, rex should check if indeed it is its plugin checking for exported function, ie: GetProcAddress(HMODULE, "RexPluginInit");
- if it returns a pointer to a function, rex should call it.

What arguments RexPluginInit function takes and what result it returns should be defined by you in some redistributed plugin api header.
Let's assume plugins should interface with rex using C linkage, your header named "rex_plug_api.h" would look like this:

Code: [Select]
struct Cell
{
     uint8_t fg_rgb[3], bg_rgb[3];
     uint32_t chr_code;
};

struct RexAPI
{
    int version;

    // pointer to function (implemented by rex) that can be called by plugin at its startup (from its implementation of RexPluginInit)
    // rex should keep all registered formats somewhere and make it possible to choose such format during export / import
    bool (*RegisterFileFormat)(const char* file_ext, bool (*Save)(const char* path), bool (*Load)(const char* path));

    // pointers to functions (implemented by rex) intented to be called during saving
    int (*GetNumLayers)();
    int (*GetLayerWidht(int layer);
    int (*GetLayerHeight(int layer);
    bool (*GetLayerData(int layer, Cell* c);

    // pointers to functions (implemented by rex) intented to be called during loading
    bool (*AddLayer)(int layer, int width, int height);
    bool (*SetLayerData)(int layer, const Cell* data);

    // version 1 ends here ------------------------------------

    // followed by extended api in future
    // ...
};

extern "C" bool RexPluginInit( RexAPI* plugin_api );

So now let's try to implement sample custom format loader/saver plugin, which is almost identical to .xp format, except gzip usage and column/row order :)

Code: [Select]

#include "rex_plug_api.h"
#include <stdio.h>
#include <malloc.h>

RexAPI* api = 0;

bool MySave(const char* path)
{
    FILE* f=fopen(path,"wb");
    if (!f)
        return false;
    int layers = api->GetNumLayers();
    fwrite(&layers,1,sizeof(int),f);
    for (int i=0; i<layers; i++)
    {
        int w = api->GetLayerWidth(i);
        int h = api->GetLayerHeight(i);
        fwrite(&w,1,sizeof(int),f);
        fwrite(&h,1,sizeof(int),f);

        int n =w*h;
        Cell* data = (Cell*)malloc(sizeof(Cell) * n);
        api->GetLayerData(i,data);

        fwrite(data, n, sizeof(Cell), f);
        free(data);
    }
    fclose(f);
    return true;
}

bool MyLoad(const char* path)
{
    FILE* f=fopen(path,"rb");
    if (!f)
        return false;

    int layers;
    fread(&layers,1,sizeof(int),f);

    for (int i=0; i<layers; i++)
    {
         int w,h;
         fread(&w,1,sizeof(int),f);
         fread(&h,1,sizeof(int),f);
         api->AddLayer(i,w,h);

         int n = w*h;
         Cell* data = malloc(sizeof(Cell)*n);
         fread(data,n,sizeof(Cell),f);

         api->SetLayerData(i,data);
         free(data);
    }

    fclose(f);
    return true;
}

bool RexPluginInit( RexAPI* plugin_api )
{
    api = plugin_api;

    if (api->version < 1)
        return false;

    api->RegisterFileFormat(".myext", MySave, MyLoad);
    return true;
}


That's it, I hope everything is clear, although I didn't try to compile it, so certainly there are typos.
I'd love to help moving this initiative forward!



49
Everything REXPaint / Re: [Feature Request] Embedding additional data
« on: February 10, 2019, 04:53:41 AM »
Yep, that is something I requested years ago, bu indeed handling all users needs in that way would be hardly possible, especially when it comes to convenient editting of such data.

So personally, I'd rather like to start initiative for adding plugin API. In the first place it could simply add save and load functions handling custom file formats. I can understand that it could begin even bigger flood of requests asking you to add something to the plugin API, which I guess you'd like to avoid :P

50
Everything REXPaint / Re: REXPaint on Hacker News, Gigazine
« on: December 15, 2018, 09:19:41 AM »
Cool! Thanks for posting it, somehow it explains echo effect I noticed on AP server:

420   9.41%   15/Dec/2018   24.73 MiB   
786   17.61%   14/Dec/2018   27.42 MiB   
949   21.26%   13/Dec/2018   37.20 MiB   
783   17.54%   12/Dec/2018   41.57 MiB   
1096   24.56%   11/Dec/2018   99.32 MiB   
429   9.61%   10/Dec/2018   19.70 MiB


Pages: 1 [2] 3 4 ... 6