Package compiler

Source Code of compiler.TestCompiler

package compiler;

import static d3d11.D3D11.*;
import static d3d11.D3D11.D3D_DRIVER_TYPE.*;
import static org.bridj.Pointer.*;
import static org.junit.Assert.assertEquals;

import org.bridj.Pointer;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import d3d11.core.ID3D10Blob;
import d3d11.core.ID3D11Device;
import d3d11.core.ID3D11DeviceContext;
import d3d11.shader.ID3D11VertexShader;
import static d3dcompiler.D3DCompiler.*;

public class TestCompiler {

  ID3D11Device device;
  ID3D11DeviceContext immediateContext;
 
  @After
  public void destroy() {
    // Release objects
    immediateContext.Release();
    device.Release();
  }
 
  @Before
  public void init() {
   
    Pointer<Pointer<ID3D11Device>> pDevice = allocatePointer(ID3D11Device.class);
    Pointer<Pointer<ID3D11DeviceContext>> pDeviceContext = allocatePointer(ID3D11DeviceContext.class);
   
    // Create device
    int result = D3D11CreateDevice(null,
              D3D_DRIVER_TYPE_HARDWARE,
              null,
              0,
              null,
              0,
              D3D11_SDK_VERSION,
              pDevice,
              null,
              pDeviceContext);
   
    assertEquals(0, result);
   
    device = new ID3D11Device(pDevice.get());
    immediateContext = new ID3D11DeviceContext(pDeviceContext.get());
  }
 
  @Test
  public void compileShaders() {
   
    String vertexShader = "float4 VS( float4 Pos : POSITION ) : SV_POSITION " +
                "{ " +
                "    return Pos;" +
                "}";
    //String pixelShader = "float4 PS( float4 Pos : SV_POSITION ) : SV_Target { return float4( 1.0f, 1.0f, 0.0f, 1.0f );    // Yellow, with Alpha = 1}"; 
   
    Pointer<Pointer<ID3D10Blob>> ppCode = allocatePointer(ID3D10Blob.class);
    Pointer<Pointer<ID3D10Blob>> ppErrorMsgs = allocatePointer(ID3D10Blob.class);
    int result = D3DCompile(pointerToCString(vertexShader), vertexShader.length(), null, null, null, pointerToCString("VS"), pointerToCString("vs_5_0"), 0, 0, ppCode, ppErrorMsgs);
    assertEquals(0, result);
   
    ID3D10Blob vsCode = ppCode.get().getNativeObject(ID3D10Blob.class);
    Pointer<Pointer<ID3D11VertexShader>> ppVS = allocatePointer(ID3D11VertexShader.class);
    result = device.CreateVertexShader(vsCode.GetBufferPointer(), (int)vsCode.GetBufferSize(), null, ppVS);
    assertEquals(0, result);
   
    ID3D11VertexShader vs = ppVS.get().getNativeObject(ID3D11VertexShader.class);
    result = vs.Release();
    assertEquals(0, result);
  }
}
TOP

Related Classes of compiler.TestCompiler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.