Skip to content

Commit

Permalink
fixed crashing when entering servers with many channels. Crash was du…
Browse files Browse the repository at this point in the history
…e to rendering too much/too far(?) something like this crashed it : vita2d_font_draw_texture( font , x , y = 5300 , 10 , hi );

Former-commit-id: 72e3711
  • Loading branch information
devingDev committed Jun 6, 2017
1 parent d047bbc commit fb2cce9
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 29 deletions.
6 changes: 6 additions & 0 deletions README.MD
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ If something is wrong ask in vita hacking discord or in #henkaku or open an issu
![alt text](http://jaynapps.com/imgupload/uploads/35c874c93e221a29512a6f98fa5685cb.jpg)

CHANGELOG:
1.06 Limited rendering to a MAX/MIN Y Axis to prevent crashing when to many channels are loaded.
Also fixed keyboard.

1.05 new livearea from T3CHNOLOGIC , multithreading ( no freezes when it refreshes channel messages)
tried out wordwrapping, does not work with long lines without spaces >_>
password is now hidden :>

1.04 rewrite + new UI + added DM (+ Press L to switch fonts , will be removed soon )

Expand Down
Binary file removed psp2core-1496750379-0x00004c21df-eboot.bin.psp2dmp
Binary file not shown.
Binary file not shown.
66 changes: 39 additions & 27 deletions src/VitaGUI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,14 +115,16 @@ void VitaGUI::Draw(){
vita2d_draw_texture_rotate(loadingImage, 416 , 208, loadingImageAngle);
//vita2d_pgf_draw_text(pgf, 150, 300, RGBA8(255,255,255,255), 2.0f, loadingString.c_str());
vita2d_font_draw_text(vita2dFont , 150, 300, RGBA8(255,255,255,255), 20, loadingString.c_str());
loadingImageAngle ++;
loadingImageAngle += 0.4f;

}else if(state == 2){
setGuildBoxes();
for(int i = 0 ; i < guildBoxes.size() ; i++){
vita2d_draw_texture( guildsBGImage , guildScrollX + 128 , guildScrollY + i * 128);
//vita2d_pgf_draw_text(pgf, guildScrollX + 256, guildScrollY + i * 128 + 96, RGBA8(255,255,255,255), 3.0f, discordPtr->guilds[i].name.c_str());
vita2d_font_draw_text(vita2dFont , guildScrollX + 150, guildScrollY + i * 128 + 96, RGBA8(255,255,255,255), GUILD_TITLE_TEXT_SIZE_PIXEL, discordPtr->guilds[i].name.c_str());
if(guildScrollY + i * 128 < MAX_DRAW_HEIGHT && guildScrollY + i * 128 > MIN_DRAW_HEIGHT){
vita2d_draw_texture( guildsBGImage , guildScrollX + 128 , guildScrollY + i * 128);
//vita2d_pgf_draw_text(pgf, guildScrollX + 256, guildScrollY + i * 128 + 96, RGBA8(255,255,255,255), 3.0f, discordPtr->guilds[i].name.c_str());
vita2d_font_draw_text(vita2dFont , guildScrollX + 150, guildScrollY + i * 128 + 96, RGBA8(255,255,255,255), GUILD_TITLE_TEXT_SIZE_PIXEL, discordPtr->guilds[i].name.c_str());
}
}

vita2d_draw_texture(dmIconImage , 0 , 0);
Expand All @@ -133,16 +135,20 @@ void VitaGUI::Draw(){

logSD("loop draw channel boxes");
for(int i = 0 ; i < channelBoxes.size() ; i++){
logSD("adding channelbox");
vita2d_draw_texture( guildsBGImage , channelScrollX + 128 , channelScrollY + i * 128);
//vita2d_pgf_draw_text(pgf, channelScrollX + 256, channelScrollY + i * 128 + 64, RGBA8(255,255,255,255), 3.0f, discordPtr->guilds[discordPtr->currentGuild].channels[i].name.c_str());
logSD("Channelname:");
logSD(discordPtr->guilds[discordPtr->currentGuild].channels[i].name);
vita2d_font_draw_text(vita2dFont , channelScrollX + 150, channelScrollY + i * 128 + 64, RGBA8(255,255,255,255), CHANNEL_TITLE_TEXT_SIZE_PIXEL, discordPtr->guilds[discordPtr->currentGuild].channels[i].name.c_str());
//vita2d_pgf_draw_text(pgf, channelScrollX + 256, channelScrollY + i * 128 + 96, RGBA8(255,255,255,255), 1.0f, discordPtr->guilds[discordPtr->currentGuild].channels[i].topic.c_str());
logSD("topic:");
logSD(discordPtr->guilds[discordPtr->currentGuild].channels[i].topic);
vita2d_font_draw_text(vita2dFont , channelScrollX + 180, channelScrollY + i * 128 + 96, RGBA8(255,255,255,255), CHANNEL_TOPIC_TEXT_SIZE_PIXEL, discordPtr->guilds[discordPtr->currentGuild].channels[i].topic.c_str());
if(channelScrollY + i * 128 < MAX_DRAW_HEIGHT && channelScrollY + i * 128 > MIN_DRAW_HEIGHT){
logSD("adding channelbox");
vita2d_draw_texture( guildsBGImage , channelScrollX + 128 , channelScrollY + i * 128);
//vita2d_pgf_draw_text(pgf, channelScrollX + 256, channelScrollY + i * 128 + 64, RGBA8(255,255,255,255), 3.0f, discordPtr->guilds[discordPtr->currentGuild].channels[i].name.c_str());
logSD("Channelname:");
logSD(discordPtr->guilds[discordPtr->currentGuild].channels[i].name);
std::string channelName = discordPtr->guilds[discordPtr->currentGuild].channels[i].name;
vita2d_font_draw_text(vita2dFont , channelScrollX + 150, channelScrollY + i * 128 + 64, RGBA8(255,255,255,255), CHANNEL_TITLE_TEXT_SIZE_PIXEL, channelName.c_str());
//vita2d_pgf_draw_text(pgf, channelScrollX + 256, channelScrollY + i * 128 + 96, RGBA8(255,255,255,255), 1.0f, discordPtr->guilds[discordPtr->currentGuild].channels[i].topic.c_str());
logSD("topic:");
logSD(discordPtr->guilds[discordPtr->currentGuild].channels[i].topic);
std::string channelTopic = discordPtr->guilds[discordPtr->currentGuild].channels[i].topic;
vita2d_font_draw_text(vita2dFont , channelScrollX + 180, channelScrollY + i * 128 + 96, RGBA8(255,255,255,255), CHANNEL_TOPIC_TEXT_SIZE_PIXEL, channelTopic.c_str());
}
}

vita2d_draw_texture(dmIconImage , 0 , 0);
Expand All @@ -151,12 +157,14 @@ void VitaGUI::Draw(){
setMessageBoxes();

for(int i = 0 ; i < messageBoxes.size() ; i++){
vita2d_draw_texture( guildsBGImage , messageScrollX + 128 , messageScrollY + i * 128);
//vita2d_pgf_draw_text(pgf, messageScrollX + 256, messageScrollY + i * 128 + 96, RGBA8(255,255,255,255), 1.0f, discordPtr->guilds[discordPtr->currentGuild].channels[discordPtr->currentChannel].messages[i].content.c_str());
//vita2d_font_draw_text(vita2dFont , messageScrollX + 150, messageScrollY + i * 128 + 32, RGBA8(255,255,255,255), MESSAGE_AUTHOR_TEXT_SIZE_PIXEL, discordPtr->guilds[discordPtr->currentGuild].channels[discordPtr->currentChannel].messages[i].author.username.c_str());
//vita2d_font_draw_text(vita2dFont , messageScrollX + 160, messageScrollY + i * 128 + 96, RGBA8(255,255,255,255), MESSAGE_CONTENT_TEXT_SIZE_PIXEL, discordPtr->guilds[discordPtr->currentGuild].channels[discordPtr->currentChannel].messages[i].content.c_str());
vita2d_font_draw_text(vita2dFont , messageScrollX + 150, messageScrollY + i * 128 + 32, RGBA8(255,255,255,255), MESSAGE_AUTHOR_TEXT_SIZE_PIXEL, messageBoxes[i].username.c_str());
vita2d_font_draw_text(vita2dFont , messageScrollX + 160, messageScrollY + i * 128 + 96, RGBA8(255,255,255,255), MESSAGE_CONTENT_TEXT_SIZE_PIXEL, messageBoxes[i].content.c_str());
if(messageScrollY + i * 128 < MAX_DRAW_HEIGHT && messageScrollY + i * 128 > MIN_DRAW_HEIGHT){
vita2d_draw_texture( guildsBGImage , messageScrollX + 128 , messageScrollY + i * 128);
//vita2d_pgf_draw_text(pgf, messageScrollX + 256, messageScrollY + i * 128 + 96, RGBA8(255,255,255,255), 1.0f, discordPtr->guilds[discordPtr->currentGuild].channels[discordPtr->currentChannel].messages[i].content.c_str());
//vita2d_font_draw_text(vita2dFont , messageScrollX + 150, messageScrollY + i * 128 + 32, RGBA8(255,255,255,255), MESSAGE_AUTHOR_TEXT_SIZE_PIXEL, discordPtr->guilds[discordPtr->currentGuild].channels[discordPtr->currentChannel].messages[i].author.username.c_str());
//vita2d_font_draw_text(vita2dFont , messageScrollX + 160, messageScrollY + i * 128 + 96, RGBA8(255,255,255,255), MESSAGE_CONTENT_TEXT_SIZE_PIXEL, discordPtr->guilds[discordPtr->currentGuild].channels[discordPtr->currentChannel].messages[i].content.c_str());
vita2d_font_draw_text(vita2dFont , messageScrollX + 150, messageScrollY + i * 128 + 32, RGBA8(255,255,255,255), MESSAGE_AUTHOR_TEXT_SIZE_PIXEL, messageBoxes[i].username.c_str());
vita2d_font_draw_text(vita2dFont , messageScrollX + 160, messageScrollY + i * 128 + 96, RGBA8(255,255,255,255), MESSAGE_CONTENT_TEXT_SIZE_PIXEL, messageBoxes[i].content.c_str());
}
}

vita2d_draw_texture(dmIconImage , 0 , 0);
Expand All @@ -165,9 +173,11 @@ void VitaGUI::Draw(){
setDirectMessageBoxes();

for(int i = 0 ; i < directMessageBoxes.size() ; i++){
vita2d_draw_texture( guildsBGImage , directMessageScrollX + 128 , directMessageScrollY + i * 128);
//vita2d_pgf_draw_text(pgf, directMessageScrollX + 256, directMessageScrollY + i * 128 + 96, RGBA8(255,255,255,255), 1.0f, discordPtr->guilds[discordPtr->currentGuild].channels[discordPtr->currentChannel].messages[i].content.c_str());
vita2d_font_draw_text(vita2dFont , directMessageScrollX + 150, directMessageScrollY + i * 128 + 96, RGBA8(255,255,255,255), MESSAGE_AUTHOR_TEXT_SIZE_PIXEL, discordPtr->directMessages[i].recipients[0].username.c_str());
if(directMessageScrollY + i * 128 < MAX_DRAW_HEIGHT && directMessageScrollY + i * 128 > MIN_DRAW_HEIGHT){
vita2d_draw_texture( guildsBGImage , directMessageScrollX + 128 , directMessageScrollY + i * 128);
//vita2d_pgf_draw_text(pgf, directMessageScrollX + 256, directMessageScrollY + i * 128 + 96, RGBA8(255,255,255,255), 1.0f, discordPtr->guilds[discordPtr->currentGuild].channels[discordPtr->currentChannel].messages[i].content.c_str());
vita2d_font_draw_text(vita2dFont , directMessageScrollX + 150, directMessageScrollY + i * 128 + 96, RGBA8(255,255,255,255), MESSAGE_AUTHOR_TEXT_SIZE_PIXEL, discordPtr->directMessages[i].recipients[0].username.c_str());
}
}

vita2d_draw_texture(dmIconImage , 0 , 0);
Expand All @@ -176,10 +186,12 @@ void VitaGUI::Draw(){
setDirectMessageMessagesBoxes();

for(int i = 0 ; i < directMessageMessagesBoxes.size() ; i++){
vita2d_draw_texture( guildsBGImage , directMessageMessagesScrollX + 128 , directMessageMessagesScrollY + i * 128);
//vita2d_pgf_draw_text(pgf, directMessageMessagesScrollX + 256, directMessageMessagesScrollY + i * 128 + 96, RGBA8(255,255,255,255), 1.0f, discordPtr->guilds[discordPtr->currentGuild].channels[discordPtr->currentChannel].messages[i].content.c_str());
vita2d_font_draw_text(vita2dFont , directMessageMessagesScrollX + 150, directMessageMessagesScrollY + i * 128 + 32, RGBA8(255,255,255,255), MESSAGE_AUTHOR_TEXT_SIZE_PIXEL, discordPtr->directMessages[discordPtr->currentDirectMessage].messages[i].author.username.c_str());
vita2d_font_draw_text(vita2dFont , directMessageMessagesScrollX + 160, directMessageMessagesScrollY + i * 128 + 96, RGBA8(255,255,255,255), MESSAGE_CONTENT_TEXT_SIZE_PIXEL, discordPtr->directMessages[discordPtr->currentDirectMessage].messages[i].content.c_str());
if(directMessageMessagesScrollY + i * 128 < MAX_DRAW_HEIGHT && directMessageMessagesScrollY + i * 128 > MIN_DRAW_HEIGHT){
vita2d_draw_texture( guildsBGImage , directMessageMessagesScrollX + 128 , directMessageMessagesScrollY + i * 128);
//vita2d_pgf_draw_text(pgf, directMessageMessagesScrollX + 256, directMessageMessagesScrollY + i * 128 + 96, RGBA8(255,255,255,255), 1.0f, discordPtr->guilds[discordPtr->currentGuild].channels[discordPtr->currentChannel].messages[i].content.c_str());
vita2d_font_draw_text(vita2dFont , directMessageMessagesScrollX + 150, directMessageMessagesScrollY + i * 128 + 32, RGBA8(255,255,255,255), MESSAGE_AUTHOR_TEXT_SIZE_PIXEL, discordPtr->directMessages[discordPtr->currentDirectMessage].messages[i].author.username.c_str());
vita2d_font_draw_text(vita2dFont , directMessageMessagesScrollX + 160, directMessageMessagesScrollY + i * 128 + 96, RGBA8(255,255,255,255), MESSAGE_CONTENT_TEXT_SIZE_PIXEL, discordPtr->directMessages[discordPtr->currentDirectMessage].messages[i].content.c_str());
}
}

vita2d_draw_texture(dmIconImage , 0 , 0);
Expand Down
2 changes: 2 additions & 0 deletions src/VitaGUI.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
#include <vector>
#include <string>

#define MAX_DRAW_HEIGHT 800
#define MIN_DRAW_HEIGHT -800

#define MESSAGE_AUTHOR_TEXT_SIZE_PIXEL 15
#define MESSAGE_CONTENT_TEXT_SIZE_PIXEL 30
Expand Down
18 changes: 16 additions & 2 deletions src/log.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,24 @@
#include <psp2/io/fcntl.h>

void logSD(std::string logData){
if(1==0){
logData += "\n";
const char * data = logData.c_str();
int f = sceIoOpen("ux0:data/vitacord-log.txt", SCE_O_WRONLY | SCE_O_APPEND | SCE_O_CREAT, 0777);
sceIoWrite(f, data, strlen(data));
sceIoClose(f);
}
}

void criticalLogSD(std::string logData){

logData += "\n";
const char * data = logData.c_str();
int f = sceIoOpen("ux0:data/vitacord-log.txt", SCE_O_WRONLY | SCE_O_APPEND | SCE_O_CREAT, 0777);
sceIoWrite(f, data, strlen(data));
sceIoClose(f);
sceIoWrite(f, data, strlen(data));
sceIoClose(f);

}



1 change: 1 addition & 0 deletions src/log.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include <string.h>

void logSD(std::string logData);
void criticalLogSD(std::string logData);

#endif

0 comments on commit fb2cce9

Please sign in to comment.