:: PlayerAdvance.org ::  

Pr嶰嶮ent   :: PlayerAdvance.org :: > :: Forums H嶵erg廥 :: > 無ibrary

無ibrary Official 無ibrary forum (English / Fran蓷is)

Publicit

R廧onse
 
Outils de la discussion Modes d'affichage
Vieux 18/12/2008, 17h47   #1
ambranera
Newbie
 
Date d'inscription: 18/12/2008
Messages: 4
Par d嶨aut Drawing texture ontop of another

Hi, im trying to draw (image2->texture ) on top of (image1->texture) but it seems that i can not do it properly, the code i'm using is

Code PHP:
void draw_rectangle(int x,int y,UL_IMAGEdest,UL_IMAGEsrc)
{
    
int i=0;
    
int j=0;
    
int    srcWidthsrc->sizeX;
    
int     srcHeightsrc->sizeY;
    
int    destWidthdest->sizeX;
    
void*   destTexture=dest->texture;
    
void*   srcTexture=src->texture;

    
destTexture+=(destWidth x)*2;//jumping y*destWidth pixel(y lines) then jumps x pixels ( the *2 is because i'm handling 2bytes truecolor images)

    
for(j=0;j<srcHeight;j++)//for each row
    
{
        for(
i=0;i<srcWidth;i++)//for each pixel of row
        
{
            *((
uint16*)destTexture)=*((uint16*)srcTexture); //Copies the value
            
destTexture+=2;//jumps two bytes foward
            
srcTexture+=2//jumps two bytes foward
            
        
}
        
destTexture+=(destWidth-srcWidth)*2;//Jumps a row foward
    
}

this code doesnt work, any hints?
ambranera est d嶰onnect   R廧onse avec citation

Publicit

Vieux 18/12/2008, 20h28   #2
Nesgba
Membre confirm
 
Date d'inscription: 10/11/2005
Messages: 830
Par d嶨aut

*void = 4 bytes generally, transtype is evil

Code PHP:
void draw_rectangle(int x,int y,UL_IMAGEdest,UL_IMAGEsrc)
{
    
int i=0;
    
int j=0;
    
int    srcWidthsrc->sizeX;
    
int    srcHeightsrc->sizeY;
    
int    destWidthdest->sizeX;
    
uint16*   destTexture=(uint16*)dest->texture;
    
uint16*   srcTexture=(uint16*)src->texture;

    
destTexture+=(destWidth x);//jumping y*destWidth pixel(y lines) then jumps x pixels ( the *2 is because i'm handling 2bytes truecolor images)

    
for(j=0;j<srcHeight;j++)//for each row
    
{
        for(
i=0;i<srcWidth;i++)//for each pixel of row
        
{
            *
destTexture=*srcTexture//Copies the value
            
destTexture++;//jumps two bytes foward
            
srcTexture++; //jumps two bytes foward
            
        
}
        
destTexture+=(destWidth-srcWidth);//Jumps a row foward
    
}

Nesgba est d嶰onnect   R廧onse avec citation
Vieux 18/12/2008, 21h05   #3
ambranera
Newbie
 
Date d'inscription: 18/12/2008
Messages: 4
Par d嶨aut

void * is 4 byte
so incrementing void** would add 4 to void**

void is 1byte on ds
so incrementing void* adds 1 to void*

anyway i solved, the surfaces dont have the width of the image but the nearest power of 2, this code works

Code PHP:
void draw_rectangle(int x,int y,UL_IMAGEdest,UL_IMAGEsrc,u8 size)
{
    
int i=0;
    
int j=0;
    
int    srcWidthsrc->sysSizeX;
    
int     srcHeightsrc->sysSizeY;
    
int    srcRealWidthsrc->sizeX;
    
int     srcRealHeightsrc->sizeY;
    
int    destWidthdest->sysSizeX;
//    int    destHeight= dest->sizeY;
    
void*   destTexture=dest->texture;
    
void*   srcTexture=src->texture;

    
destTexture+=(destWidth x)<<1;//Saltiamo tante linee quanto � il valore di y incrementando il puntatore al buffer

    
for(j=0;j<srcRealHeight;j++)//Ripetiamo il ciclo per ogni colonna
    
{
        
        for(
i=0;i<srcRealWidth;i++)
        {
            *((
uint16*)destTexture)=*((uint16*)srcTexture); //Copies First byte
            
            
destTexture+=2;
            
srcTexture+=2;
            
        }
        
srcTexture+=(srcWidth-srcRealWidth)<<1;
        
destTexture+=((destWidth-srcRealWidth)<<1);
    }

ambranera est d嶰onnect   R廧onse avec citation
R廧onse

Liens sociaux

Publicit



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invit(s))
 
Outils de la discussion
Modes d'affichage

R銶les de messages
Vous ne pouvez pas cr嶪r de nouvelles discussions
Vous ne pouvez pas envoyer des r廧onses
Vous ne pouvez pas envoyer des pi鋃es jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activ嶪s : oui
Les smileys sont activ廥 : oui
La balise [IMG] est activ嶪 : oui
Le code HTML peut 皻re employ : non
Navigation rapide

Discussions similaires
Discussion Auteur Forum R廧onses Dernier message
A problem with image drawing, and a question. Netaro Aide au d憝eloppement 2 05/10/2007 19h13
NDS 3D, Texture et libnds Dr.Vince Aide au d憝eloppement 4 14/05/2007 00h05
Nomad Nds Texture Converter 1.0 Arcadia Les News 0 21/01/2007 01h06
NDS Nomad Texture Converter nomadteam Librairies et Utilitaires 2 20/01/2007 21h51


Fuseau horaire GMT +2. Il est actuellement 13h44.


丼it par : vBulletin® version 3.7.2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Tous droits r廥erv廥.
Version fran蓷ise #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince