Dimenticare icon

createHTMLSurface

Dimenticare | PRO | 07/08/15 09:00:19 PM UTC | 0 ⭐ | 10608 👁️ | Never ⏰ | []
Game Maker |

0 B

|

None

|

0 👍

/

0 👎

var html, i, j, str, c, c2, sw, lineHeight;
surface=surface_create(1280, 720);
html=argument0;
 
surface_set_target(surface);
draw_set_color(c_white);
draw_rectangle(0, 0, 1280, 720, false);
draw_set_color(c_black);
 
sh=32;
lineHeight=0;
for (i=0; i<ds_list_size(html.page); i+=1){
    str=ds_list_find_value(html.page, i);
    sw=0;
    sh+=lineHeight+4;
    lineHeight=0;
    for (j=1; j<=string_length(str); j+=1){
        c=string_char_at(str, j);
        if (c=="\"){
            // Ignore the rest of the line
        } else if (c=="<"){
            // Start a tag
            c="";
            while (j<string_length(str)){
                j+=1;
                c2=string_char_at(str, j);
                if (c2==">")
                    break;
                else
                    c+=c2;
                
            }
            var terms;
            terms=string_split(string_lower(c), "=");
            c=de(terms);
            if (string_char_at(c, 1)=="/"){
                c=string_copy(c, 2, string_length(c)-1);
                switch (c){
                    case "p":
                        // i really don't remember why I decided I needed this
                        break;
                    case "i":
                        isItalic=false;
                        break;
                    case "u":
                        isUnderlined=false;
                        break;
                    case "strike":
                        isStrike=false;
                        break;
                    case "b":
                        isBold=false;
                        break;
                    case "h1":
                        draw_set_font(FontDefault);
                        draw_set_color(c_black);
                        break;
                    case "planewalker":
                        draw_set_font(FontDefault);
                        break;
                    case "color":
                        draw_set_color(c_black);
                        break;
                    case "sup":
                        verticalOffset=0;
                        break;
                    case "sub":
                        verticalOffset=0;
                        break;
                }
            } else {
                switch (c){
                    case "p":
                        // i really don't remember why I decided I needed this
                        break;
                    case "i":
                        isItalic=355; // degree slant of italic text
                        break;
                    case "u":
                        isUnderlined=true;
                        break;
                    case "strike":
                        isStrike=true;
                        break;
                    case "b":
                        isBold=true;
                        break;
                    case "h1":
                        draw_set_font(FontH1);
                        draw_set_color(c_blue);
                        break;
                    case "planewalker":
                        draw_set_font(FontPlanewalker);
                        break;
                    case "color":
                        setHTMLColor(de(terms));
                        break;
                    case "sup":
                        verticalOffset=-1;
                        break;
                    case "sub":
                        verticalOffset=1;
                        break;
                }
            }
            ds_queue_destroy(terms);
        } else if (c=="$"){
            // Value
        } else if (c=="%"){
            // Function/Script call
        } else {
            // Actual text
            var dim;
            dim=string_split(addHTMLCharacter(32+sw, 32+sh, c), ",");
            sw+=real(de(dim))+1;
            lineHeight=max(lineHeight, real(de(dim)));
            ds_queue_destroy(dim);
        }
    }
}
surface_reset_target();

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎