Closed PedroAlvesq closed 10 years ago
Currently don't have access to the library to test, but it sounds/looks like a Render State issue.
Neoforce changes some Render State details, you should first render Neoforce using the Being Draw function, Then reset GraphicsDevice Properties, such as BlendState, RasterizerState, DepthStencilState, SamplerState. Draw your 3D world, then call EndDraw on Neoforce
thanks men works but i change my game the xna to sharpdx and i have the same problem this is my code
using System;
using SharpDX;
using SharpDX.Toolkit;
using System.Collections.Generic;
using SharpDX.Toolkit.Input;
using TomShane.Neoforce.Controls;
using SharpDX.Direct3D;
using SharpDX.Direct3D11;
using SharpDX.Toolkit.Content;
namespace TomShane.Neoforce.Central
{
using SharpDX.Toolkit.Graphics;
/// <summary>
/// Simple MiniCube application using SharpDX.Toolkit.
/// The purpose of this application is to show a rotating cube using <see cref="BasicEffect"/>.
/// </summary>
public class Gamer : Game
{
private Manager NeoManager;
private GraphicsDeviceManager graphicsDeviceManager;
private readonly World _Login;
public Gamer()
{
// Creates a graphics manager. This is mandatory.
graphicsDeviceManager = new GraphicsDeviceManager(this);
graphicsDeviceManager.PreferredBackBufferWidth = 1280;
graphicsDeviceManager.PreferredBackBufferHeight = 800;
NeoManager = new Manager(this, graphicsDeviceManager, "Default");
IsMouseVisible = true;
_Login = new World(this, NeoManager,"ola", graphicsDeviceManager);
Content.RootDirectory = "Content";
}
protected override void LoadContent()
{
base.LoadContent();
}
protected override void Initialize()
{
base.Initialize();
NeoManager.Initialize();
Window.Title = "Firstgame";
}
protected override void Update(GameTime gameTime)
{
base.Update(gameTime);
NeoManager.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
NeoManager.BeginDraw(gameTime);// the problem is where
GraphicsDevice.Clear(SharpDX.Color.CornflowerBlue);
NeoManager.EndDraw(); //the problem its where
base.Draw(gameTime);
}
}
}
using System;
using SharpDX;
using SharpDX.Toolkit;
using System.Collections.Generic;
using SharpDX.Toolkit.Input;
using TomShane.Neoforce.Controls;
using SharpDX.Direct3D;
using SharpDX.Direct3D11;
using SharpDX.Toolkit.Content;
using SharpDX.Toolkit.Graphics;
namespace TomShane.Neoforce.Central
{
internal sealed class World : GameSystem
{
private Manager NeoManager;
// private Window window;
string texto;
private SpriteBatch spriteBatch;
private SpriteFont arial16BMFont;
private readonly Login _Login;
// private readonly Server _Server;
// By preloading any assets used by UI rendering, we avoid framerate glitches
// when they suddenly need to be loaded in the middle of a menu transition.
private PointerManager pointer;
private Model model;
private List<Model> models;
private Game _game;
private BoundingSphere modelBounds;
private Matrix world;
private Matrix view;
private Matrix projection;
TomShane.Neoforce.Controls.TabControl tbc;
private GraphicsDeviceManager graphicsDeviceManager;
public World(Game game,Manager ola,string text,GraphicsDeviceManager gra)
: base(game)
{
_game = game;
graphicsDeviceManager = gra;
texto = text;
System.Console.Write(texto);
graphicsDeviceManager.PreferredGraphicsProfile = new FeatureLevel[] { FeatureLevel.Level_9_1, };
pointer = new PointerManager(_game);
NeoManager = ola;
// this game system has something to draw - enable drawing by default
// this can be disabled to make objects drawn by this system disappear
Visible = true;
// this game system has logic that needs to be updated - enable update by default
// this can be disabled to simulate a "pause" in logic update
Enabled = true;
// add the system itself to the systems list, so that it will get initialized and processed properly
// this can be done after game initialization - the Game class supports adding and removing of game systems dynamically
game.GameSystems.Add(this);
}
/// <summary>
/// Initialize here anything that depends on other services
/// </summary>
public override void Initialize()
{
// NeoManager.Initialize();
base.Initialize();
// get the camera service from service registry
}
/// <summary>
/// Load all graphics content here.
/// </summary>
protected override void LoadContent()
{
InitConsole(texto);
arial16BMFont = Content.Load<SpriteFont>("Arial16");
// Load the model (by default the model is loaded with a BasicEffect. Use ModelContentReaderOptions to change the behavior at loading time.
models = new List<Model>();
foreach (var modelName in new[] { "Dude", "Duck", "Car", "Happy", "Knot", "Skull", "Sphere", "Teapot", "helmet" })
{
model = Content.Load<Model>(modelName);
// Enable default lighting on model.
BasicEffect.EnableDefaultLighting(model, true);
models.Add(model);
}
model = models[0];
// Instantiate a SpriteBatch
spriteBatch = ToDisposeContent(new SpriteBatch(GraphicsDevice));
base.LoadContent();
// InitRes();
// initialize the basic effect (shader) to draw the geometry, the BasicEffect class is similar to one from XNA
}
/// <summary>
/// Draw the scene content.
/// </summary>
/// <param name="gameTime">Structure containing information about elapsed game time.</param>
/// <summary>
/// Update the scene logic.
/// </summary>
/// <param name="gameTime">Structure containing information about elapsed game time.</param>
public override void Update(GameTime gameTime)
{
var pointerState = pointer.GetState();
if (pointerState.Points.Count > 0 && pointerState.Points[0].EventType == PointerEventType.Released)
{
// Go to next model when pressing key space
model = models[(models.IndexOf(model) + 1) % models.Count];
}
// Calculate the bounds of this model
modelBounds = model.CalculateBounds();
// Calculates the world and the view based on the model size
const float MaxModelSize = 10.0f;
var scaling = MaxModelSize / modelBounds.Radius;
view = Matrix.LookAtRH(new Vector3(0, 0, MaxModelSize * 2.5f), new Vector3(0, 0, 0), Vector3.UnitY);
projection = Matrix.PerspectiveFovRH(0.9f, (float)GraphicsDevice.BackBuffer.Width / GraphicsDevice.BackBuffer.Height, 0.1f, MaxModelSize * 10.0f);
world = Matrix.Translation(-modelBounds.Center.X, -modelBounds.Center.Y, -modelBounds.Center.Z) * Matrix.Scaling(scaling) * Matrix.RotationY((float)gameTime.TotalGameTime.TotalSeconds);
base.Update(gameTime);
// NeoManager.Update(gameTime);
// get the total elapsed seconds since the start of the game
}
public override void Draw(GameTime gameTime)
{
// NeoManager.BeginDraw(gameTime);
// graphicsDeviceManager.GraphicsDevice.BlendStates = BlendStateCollection.StateAllocatorDelegate.RemoveAll();
model.Draw(GraphicsDevice, world, view, projection);
// Render the text
spriteBatch.Begin();
//correntscreen.Draw(gameTime);
spriteBatch.DrawString(arial16BMFont, "Press the pointer to switch models...\r\nCurrent Model: " + model.Name, new Vector2(16, 16), Color.White);
spriteBatch.End();
// NeoManager.EndDraw();
base.Draw(gameTime);
// set the parameters for cube drawing and draw it using the basic effect
}
private void InitConsole(string texto)
{
tbc = new TomShane.Neoforce.Controls.TabControl(NeoManager);
// tbc.BackColor = new Color(10, 12, 3);
TomShane.Neoforce.Controls.Console con1 = new TomShane.Neoforce.Controls.Console(NeoManager);
TomShane.Neoforce.Controls.Console con2 = new TomShane.Neoforce.Controls.Console(NeoManager);
tbc.Visible = true;
// con2.BackColor
// Setup of TabControl, which will be holding both consoles
tbc.Init();
tbc.AddPage("Global");
tbc.AddPage("Guild");
tbc.AddPage("PARTY");
tbc.AddPage("TRADE");
tbc.Alpha = 220;
tbc.Left = 0;
tbc.Height = 220;
tbc.Width = 450;
tbc.Top =NeoManager.TargetHeight - tbc.Height - 32;
tbc.Movable = true;
tbc.Resizable = true;
tbc.MinimumHeight = 96;
tbc.MinimumWidth = 160;
tbc.TabPages[0].Add(con1);
tbc.TabPages[1].Add(con2);
con1.Init();
con1.Sender = texto;
tbc.BringToFront();
con2.Init();
con2.Sender = texto;
con2.Width = con1.Width = tbc.TabPages[0].ClientWidth;
con2.Height = con1.Height = tbc.TabPages[0].ClientHeight;
con2.Anchor = con1.Anchor = Anchors.All;
con1.Channels.Add(new ConsoleChannel(0, "General", SharpDX.Color.Orange));
con1.Channels.Add(new ConsoleChannel(1, "Private", SharpDX.Color.White));
con1.Channels.Add(new ConsoleChannel(2, "System", SharpDX.Color.Yellow));
con1.Channels.Add(new ConsoleChannel(3, "Guild", SharpDX.Color.Green));
con1.Channels.Add(new ConsoleChannel(4, "Trade", SharpDX.Color.Red));
// We want to share channels and message buffer in both consoles
con2.Channels = con1.Channels;
con2.MessageBuffer = con1.MessageBuffer;
// In the second console we display only "Private" messages
con2.ChannelFilter.Add(3);
// Select default channels for each tab
con1.SelectedChannel = 0;
con2.SelectedChannel = 3;
// Do we want to add timestamp or channel name at the start of every message?
con1.MessageFormat = ConsoleMessageFormats.All;
con2.MessageFormat = ConsoleMessageFormats.All;
// Handler for altering incoming message
con1.MessageSent += new ConsoleMessageEventHandler(con1_MessageSent);
// We send initial welcome message to System channel
con1.MessageBuffer.Add(new ConsoleMessage("System", "WELCOME TO THE SERVER! " + texto, 2));
NeoManager.Add(tbc);
}
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
void con1_MessageSent(object sender, ConsoleMessageEventArgs e)
{
if (e.Message.Channel == 0)
{
//e.Message.Text = "(!) " + e.Message.Text;
}
}
}
}
i have the same result i have when i used the xna
problem as been solve it thanks for the help
the graphics is very poor when i draw the manager how solve the problem